关于SQL语句,我在用ADO直接连接ACCESS时语句成功执行,改用ADO+ODBC后就出错了(150分)

  • 主题发起人 angleli1981
  • 开始时间
A

angleli1981

Unregistered / Unconfirmed
GUEST, unregistred user!
关于SQL语句,我在用ADO直接连接ACCESS时语句成功执行,改用ADO+ODBC后就出错了
receiptid 是单据号(不在emp,depat中)  emp是保存员工的信息  cemplyno是工卡号  cempname1是员工

名  cempname2是员工职位 depat是保存部门信息的 cprono是部门编号 cdeptname是部门名

adoq2.sql.clear;
adoq2.sql.add('insert into m(receiptid,cemplyno,cempname1,cempname2)');
adoq2.SQL.Add('SELECT '+ts2edit1.Caption +',Emp.cemplyno, Emp.cempname1, Emp.cempname2 FROM Emp

INNER JOIN Depat ON Emp.Cprono = Depat.Cprono where (((Depat.cdeptname)="'+Ts2cbb2.Text+'"))

GROUP BY Emp.cemplyno, Emp.cempname1, Emp.cempname2; ');
adoq2.open

请问如何才能正确执行[:)]
 
你的语句写的不合理!!太菜[:D]
 
把你的语句赋值到一个sqlstr中去,然后用
adoconnection1.execute(sqlstr)
 
adoq2.Open;
改成
adoq2.ExecSQL;
试试
 
不返回数据集的query操作 应执行 ExecSQL
 
对不起,原文应该是adoq2.ExecSQL
错误信息是参数不,期望是1
 
我也出过类似的情况搞不懂是怎么了,你知道答案时,给我发个信息吧

peixiaokai@163.com
 
应执行 ExecSQL
 
肯定是语句的问题,到底是什么问题,可能我太菜了,说不出来:<
 
问题已经解决了
造成“参数不足,期望是1”的错误信息的原因是
Access中使用的分隔符和Odbc不同
所以只要把"改成''就可以那
另外我还不想结束这个问题,想让各位就数据库编程方面讨论一下自己的心得

 
所这一串去掉(receiptid,cemplyno,cempname1,cempname2)
在子select 中用 as 指定字段名。
 
to jsxjd
语句问题在分隔符
 
老天,我就想到是"的问题,但我以为你只是在贴子中那样写有那个意思就行了;
 
多人接受答案了。
 
顶部