ローカルのデータベースにADO接続でテーブル名とフィールド定義を文字列で渡して、テーブルを作ろうとしています。
すでに同名のテーブルがあったら上書きしようと思うのですが、
「すでに同名のテーブルがあったら」の部分はどのように書けばよいのでしょうか?
(D7-pro,WinXp-home)
procedure TForm1.TableMaking(strTable,strField: String; q: TADOquery);
begin
q.sql.Clear;
if ---(strTableというテーブルがあれば)--- then begin
q.sql.add('Drop Table '+ strTable);
q.ExecSQL;
end;
q.sql.add('Create Table '+ strTable+'( '+ strField + ')' );
q.ExecSQL;
end;
Delphiの問題ではなく、SQLの問題ですね。
http://www.rfs.jp/sitebuilder/sql/04/02.html
「CREATE TABLE構文」の「IF NOT EXISTSパラメータ)」か、
「ALTER TABLE構文」が参考になるかと。
Create Table if not exists〜で解決しました。
わかりやすいSQL講座のサイトをご紹介いただきました。
ありがとうございました。
ツイート | ![]() |