D
del530
Unregistered / Unconfirmed
GUEST, unregistred user!
这是DFW一个朋友写的检测SQL表是否存在的函数!
function TDM.MyTableExists(ATableName: String): Boolean; //判断给定表是否存在
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)= S then
begin
Result := True;
Break;
end;{if}
end;{for}
finally
SL.Free;
end;{try}
end;
调用:
if MyTableExists('ATableName') then ShowMessage('已存在');
---------------------------------
我使用此函数,检测某个表是否存在,然后打开此表,没有就建立此表。第一次没问题,
可是用连续运行第二次时就报:数据已在集合中,无法添加等信息。。但如果将应用程序
关闭,再打开又可运行第一次,再点也是同样的错误。
但我如果只是纯检测表是否存在,则没有问题。
例:
if existsTAble('temptab') then
showmessage('is ok')
else
showmessage('is error');
则是正常的。
如果我不使用existsTable而直接使用打开表则也没问题。
何解?
function TDM.MyTableExists(ATableName: String): Boolean; //判断给定表是否存在
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)= S then
begin
Result := True;
Break;
end;{if}
end;{for}
finally
SL.Free;
end;{try}
end;
调用:
if MyTableExists('ATableName') then ShowMessage('已存在');
---------------------------------
我使用此函数,检测某个表是否存在,然后打开此表,没有就建立此表。第一次没问题,
可是用连续运行第二次时就报:数据已在集合中,无法添加等信息。。但如果将应用程序
关闭,再打开又可运行第一次,再点也是同样的错误。
但我如果只是纯检测表是否存在,则没有问题。
例:
if existsTAble('temptab') then
showmessage('is ok')
else
showmessage('is error');
则是正常的。
如果我不使用existsTable而直接使用打开表则也没问题。
何解?