///////@创建数据库文件,这是文件备份的代码
cfile:=edit1.text+'.gh';
SFile := ExtractFileDir(Application.ExeName)+'\database\客户管理.mdb' ;
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+cfile);
adoquery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+cfile;
adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+sfile;
……
////////@恢复record,这是从备份的文件中恢复记录的前部分代码
sfile:=edit1.text;
cFile := ExtractFileDir(Application.ExeName)+'\database\客户管理.mdb' ;
adoquery6.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+cfile;
adoquery5.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+sfile;
with adoquery5 do
begin
SQL.Clear;
SQL.Add('select * from record');//在这里出现验证失败
Open;
end;
验证失败是怎么回事啊?将paramCheck设为false时错误出现在open处。
cfile:=edit1.text+'.gh';
SFile := ExtractFileDir(Application.ExeName)+'\database\客户管理.mdb' ;
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+cfile);
adoquery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+cfile;
adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+sfile;
……
////////@恢复record,这是从备份的文件中恢复记录的前部分代码
sfile:=edit1.text;
cFile := ExtractFileDir(Application.ExeName)+'\database\客户管理.mdb' ;
adoquery6.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+cfile;
adoquery5.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+sfile;
with adoquery5 do
begin
SQL.Clear;
SQL.Add('select * from record');//在这里出现验证失败
Open;
end;
验证失败是怎么回事啊?将paramCheck设为false时错误出现在open处。
解决方案 »
- 主表ID插入到从表
- 高分求:关于delphi的内联汇编的问题!
- Delphi 在开发下一代互联网和网络会议上是否已经落伍?
- 怎样将TreeView的根节点隐起来并将所有要建的节点都挂在这个隐形的根节点上?
- 十万火急,在线等待:应用服务器用Scktsrvr.exe,客户端用Socketconnection,以前没有问题,最近连接速度很慢,请帮帮忙
- 请高手讲解一下这几个关于对象创建释放的语句的区别
- D7下的IdFTP如何通过代理上传??
- 求kylix3的注册机
- 关于外部函数调用的问题
- 主 题:在DLL中的窗口里不能使用ActiveX控件,是怎么回事?
- 一个报表问题,在线等候?
- 谁知道Memo里面有横线的那种控件吗?
adoquery4.SQL.Add('insert into record value(:需求编号,:记录编号,:登记日期,:购买品牌,:材料名称,:材料类别,:制造代号,:材料数量,:材料价格,:材料存在)');
with adoquery4.Parameters do
begin
ParamByName('需求编号').Value:=adoquery3.fieldbyname('需求编号').AsInteger;
ParamByName('记录编号').Value:=adoquery3.fieldbyname('记录编号').AsString;
ParamByName('登记日期').Value:=adoquery3.fieldbyname('登记日期').AsString;
ParamByName('购买品牌').Value:=adoquery3.fieldbyname('购买品牌').AsString;
ParamByName('材料名称').Value:=adoquery3.fieldbyname('材料名称').AsString;
ParamByName('材料类别').Value:=adoquery3.fieldbyname('材料类别').AsString;
ParamByName('制造代号').Value:=adoquery3.fieldbyname('制造代号').AsString;
ParamByName('材料数量').Value:=adoquery3.fieldbyname('材料数量').AsString;
ParamByName('材料价格').Value:=adoquery3.fieldbyname('材料价格').AsString;
ParamByName('材料存在').Value:=adoquery3.fieldbyname('材料存在').AsString;
end;
adoquery4.ExecSQL;
这个sql错在什么地方啊?
2.既然你是ADO那么这样写有错误
ParamByName('需求编号').Value:=adoquery3.fieldbyname('需求编号').AsInteger;
应该是
adoquery3.fieldbyname('需求编号').value;
3.你数据库的结构中
登记日期----应该是日期型号的吧
材料数量----应该是数值型号的吧
材料价格----应该是数值型号的吧
如:用ole 連接access
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=J:\Kandychen\ExcelBom\bomforrd\db1.mdb;Persist Security Info=False
在設定時用設定'blank password' ,在test 一下
最好用query連接adoconnnection, 在用adoconnnection連結db比較好
to 于伟刚大哥:
参数可以用中文。
ParamByName('材料存在').Value这个地方是笔误——是我写错了,犯这种错误不好意思!!!
to 多少爱可以重来
你是对的,但是我的问题不是密码的原因,我的数据库没有设密码,因为只是用来做备份。
用adoconnection和直接用adoquery的区别只是在于当有多个query/table连接一个数据库时,直接用多个query要建立多个连接,用adoconnection却只建立一个连接从而提高性能。我里只有一个连接所以直接用query反而好一点。