我想要用代码实现这样的问题。
有一个.mdb文件(新建出来的),首先检查这个数据库文件是否存在一个表,如果没有指定的表,那么就创建它,这样的代码应该如何写啊。我用那个什么ADOConnection.GetTableNames方法不行,老是触发异常,然后就直接跳出,不再执行了!各位老大,帮帮忙吧!
有一个.mdb文件(新建出来的),首先检查这个数据库文件是否存在一个表,如果没有指定的表,那么就创建它,这样的代码应该如何写啊。我用那个什么ADOConnection.GetTableNames方法不行,老是触发异常,然后就直接跳出,不再执行了!各位老大,帮帮忙吧!
var
SL: TStrings;
I: Integer;
S: String;
begin
Result := False;
S := UpperCase(ATableName);
SL := TStringList.Create;
try
DM.ADOConnection.GetTableNames(SL, False); //取得表名 //直接这里内部异常
for I := 0 to (SL.Count - 1) do
begin
if UpperCase(SL[I])= S then
begin
Result := True;
Break;
end;{if}
end;{for}
finally
SL.Free;
end;{try}
end;
DM.ADOConnection.GetTableNames(SL, False); //取得表名 //直接这里内部异常
---- 缺了点什么
DM.ADOConnection1.GetTableNames(SL, False);
------
SL: TStrings;
index: Integer;
begin
SL := TStringList.Create;
try
ADOConnection1.GetTableNames(SL, False);
for index := 0 to (SL.Count - 1) do begin
Table1.Insert;
Table1.FieldByName('Name').AsString := SL[index];
if ADOTable1.Active then ADOTable1.Close;
ADOTable1.TableName := SL[index];
ADOTable1.Open;
Table1.FieldByName('Records').AsInteger := ADOTable1.RecordCount; Table1.Post;
end;
finally
SL.Free;
ADOTable1.Close;
end;
end;
try
main.Cmd.CommandText:='create table dm'+trim(edit1.Text)+' (xcode varchar(9) not null,xname varchar(30) null,lName varchar(20) null,LPhone varchar(15) null,[key] varchar(5) null,parent varchar(5) null,primary key(xcode))';
main.Cmd.Execute;
except
messagebox(handle,'添加失败','提示',mb_ok);
end;
1 代码似乎没有问题,不会使你的dbconnection没有激活吧:)
2 创建表的语句看看:
adoquery.sql.add('create table a(b int)');
adoquery.exec3 ado偶觉得在delphi任何一本数据库编程的书都讲有,比较简单,sorry,的确不知道什么适合初学
--------------------------------------
看见了么,
那支蛾子,
正飞向太阳,
那就是我!
--------------------------------------
var
SL: TStringList;
begin
Result := False;
SL:=TStringList.Create ;
ADOConnection1.GetTableNames(SL);
if not (mdbtables.IndexOf(ATableName)=-1) then
Result := True;
end;看看行不行!!