access97,delphi4,sql(100分)

  • 主题发起人 主题发起人 hfz
  • 开始时间 开始时间
H

hfz

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi4通过odbc连接access97数据库,以下的这个查询一运行就出错,不知为什么?
query1.close;
query1.sql.text:='select 合同编号,供应商 from 合同管理 合同管理 where 工程编号 = "abc"';
query1.open;

出错提示为:
raised exception class edbenginerror with message 'general
sql error. [microsoft] [odbc microsoft access 驱动程序]参数不
足,期待是1。'.process stopped. use step or run to continue.

但如果我去掉select 语句中的条件部分,运行正常真是奇怪
另外,select语句中的from部分应将表名重写一遍,也不知是为什么?若通过bde建立别名
就不用这样写两遍。
 
这么老半天了,咋还没人理我呢?
 
var s:string;
s:='select 合同编号,供应商 from 合同管理 where 工程编号 = '+'abc';
with quey1 do
begin
close;
sql.clear;
sql.add(s);
open;
end;
 
query1.close;
query1.sql.text:='select 合同编号,供应商 from 合同管理 where 工程编号 = 'abc' ';
query1.open;
//试试。

 
按照二位的方法均不能通过编译其中ugvanxk大哥的方法编译时提示:
project project1.exe raised exception class
eoutofresources with message '参数错误.'
hbezwwl大哥的方法不能通过语法检查,abc非要用双引号括起来才能通过语法检查。
注意我是在odbc中建立与access97数据库的连接, 在delphi中引用数据库的odbc名字
而不是在bde中设立别名的。
 
经过我再次运行发现from后面只用写一遍表名但用query1中的sql buider中自动生成的sql
语名则出现两遍表名。大虾们快来帮我呀。
 
query1.close;
query1.sql.text:='select 合同编号,供应商 from 合同管理 合同管理 where 工程编号 ='''+'abc'+'''';
query1.open;
 
左右手真乃天人。问题已解决
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部