access问题(5分)

  • 主题发起人 主题发起人 king_213
  • 开始时间 开始时间
K

king_213

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.FormCreate(Sender: TObject);
begin
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('Delete From table1 Where date < :CheckDate');
Parameters.ParamByName('CheckDate').Value:=Date;
ExecSQL;
end;
end;
我想每次打开程序时 就把今天以前的数据删除 可是打开程序时总是报错
数据库表table1包含的字段为 A(自动编号)B(文本)C(日期)
 
SQL.Add('Delete From table1 Where C < :CheckDate'); //Date -> C
 
不要用date来做字段名,换个名字,date好象是access中的保留字
 
access数据库删除数据后文件大小并不改变(只有增加不会减小)。
建议删除数据库后,重新建立:
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Connected := False;
DeleteFile(pchar('C:/WINDOWS/Temp/db.mdb'));
end;

动态建立数据库:
(在使用控件后)
//若数据库不存在则动态建立数据库。
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/WINDOWS/Temp/db.mdb');
path := ExtractFilePath('C:/WINDOWS/Temp/'); //程序路径
ADOConnection1.Connected := False;
try
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
path + 'db.mdb' + ';Persist Security Info=False';
ADOConnection1.Connected := true;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('create table tb ( A autoincrement not null,B OLEOBJECT not null)');//建立字段
adoquery1.ExecSQL;
except
MessageBox(GetActiveWindow(), '系统错误!', '警告', MB_OK + MB_ICONWARNING);
application.Terminate;
end;
 
接受答案了.
 
再问一下 creataccess 怎么定义???
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部