Exam 学生成绩表
No; 学生编号
Code; 班别编码
T_No; 测验编号
T_Name; 测验名称
Subject; 测验科目
Achieve; 成绩请问:我现在在写表Exam时,想先加入No,Code,T_No,T_Name,Subject的值。No是从学生基本表中获取学生编号No,而Code,T_No,T_Name,Subject都是一些常量,比如Code='2000103',T_No=1,T_Name='期中考’,Subject='语文',下面是我的写法,但是不对,请各位指点,或者给出另外不同的写法,要用ADO。谢谢,一定给分。
dm.Examadoq.Close;
dm.Examadoq.SQL.Clear;
strsql:='insert into exam(No,Code,T_No,T_Name,Subject) select No, Codetxt,Timetxt,TNametxt,Subtxt from basic';
dm.Examadoq.SQL.Add(strsql);
dm.Examadoq.ExecSQL;
No; 学生编号
Code; 班别编码
T_No; 测验编号
T_Name; 测验名称
Subject; 测验科目
Achieve; 成绩请问:我现在在写表Exam时,想先加入No,Code,T_No,T_Name,Subject的值。No是从学生基本表中获取学生编号No,而Code,T_No,T_Name,Subject都是一些常量,比如Code='2000103',T_No=1,T_Name='期中考’,Subject='语文',下面是我的写法,但是不对,请各位指点,或者给出另外不同的写法,要用ADO。谢谢,一定给分。
dm.Examadoq.Close;
dm.Examadoq.SQL.Clear;
strsql:='insert into exam(No,Code,T_No,T_Name,Subject) select No, Codetxt,Timetxt,TNametxt,Subtxt from basic';
dm.Examadoq.SQL.Add(strsql);
dm.Examadoq.ExecSQL;
解决方案 »
- 庆祝自己由小菜鸟变成老菜鸟。
- @@:诚证闹洞房创意!(下午4:00结贴)
- 请问DELPHI里类似memcmp的函数是什么
- 新手上路!有没有DELPHI做网页模版的例子。请指教。up有分!
- 怎样用Delphi来解决数据库(ADO)的主键重复问题?
- 关于QuickRep 大虾请帮助
- Delphi中调用c写的dll到底要注意那些东西呀,各位有哪些经验,我老是参数传输不对
- quickrep 打印关不了窗口.高手帮我看看
- 三层菜鸟的菜鸟问题,很好拿分的
- 可否将INI文件的某一小节的字段和值删除?
- 看看下面的文本入数据库的代码,为什么执行到closefile(f1)处发生I/Oerror!
- 大家帮我看看我这样的系统应该怎样处理?
Subtxt:=combobox4.text;
Timetxt:=edit4.Text;
TNametxt:=edit3.Text;
dm.Examadoq.Close;
dm.Examadoq.SQL.Clear;
strsql:='select No,Codetxt,Timetxt,TNametxt,Subtxt from basic insert into exam(No,Code,T_No,T_Name,Subject)';
dm.Examadoq.SQL.Add(strsql);
dm.Examadoq.ExecSQL;
这是我写的代码,其中的SQL语句已经按‘飞扬’所说的改了,还是不行,出现line1:incorrect syntax near')'' 的错误。
insert into exam(No,'+Code+','+T_No+','+T_Name+','+Subject+')' strsql:='select No,'+Codetxt+','+Timetxt+','+'TNametxt+','+Subtxt+' from basic;
strsql:=‘insert into exam(No,'+Code+','+T_No+','+T_Name+','+Subject+') select No,'+Codetxt+','+Timetxt+','+'TNametxt+','+Subtxt+' from basic;
正常的insert 语句是这样的:
insert into newtable (field1,field2,...) select field1,field2,...from table where ...;可以插入多行(如果select 语句返回多行的话)。
strsql:='insert into exam(No,Code,Term,T_No,T_Name,Subject) select No,'+''''+Codetxt+''''+','+''''+Termtxt+''''+','+edit4.text+','+''''+TNametxt+''''+','+''''+Subtxt+''''+' from disclass where code='+''''+Codetxt+''''+'';
select 得到的数据的字段名必须是和insert into的表的字段名对应,这样才能一个一个对应目标字段插入,而且数据类型要相同或可以转换,比如a 表有code,name;b表有pcode,pname
可以insert into a(code,name) select pcode as code,pname as name from b;
如果a,b两表的字段名全相同,直接可以insert into a select * from b就把b都插入到a中了;这是对ado发送sql命令的理解,请指教!