全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1181
推到 Plurk!
推到 Facebook!

如何用SQL語法完成它?

尚未結案
nick167
中階會員


發表:86
回覆:133
積分:53
註冊:2003-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-26 16:02:04 IP:61.228.xxx.xxx 未訂閱
1.SQL語法可以判斷一個Table 某欄位不存在就 if not ........ then begin (SQL語法可以嗎?) ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('ALTER Table restaurant ADD taxno varchar (10) '); ADOQuery1.ExecSQL; ADOQuery1.Close; end;
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-26 20:33:24 IP:211.20.xxx.xxx 未訂閱
引言: 1.SQL語法可以判斷一個Table 某欄位不存在就 if not ........ then begin (SQL語法可以嗎?) ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('ALTER Table restaurant ADD taxno varchar (10) '); ADOQuery1.ExecSQL; ADOQuery1.Close; end;
nick167 你好 SQL語法我不知道,就算有,應該不同資料庫語法也不同吧,故我都是如以下方式處理的,且當有多個欄位要處理時,效率更好。
  AddStr := '' ;
  Query1.SQL.TEXT := 'select * From restaurant Where 1=2';
  Query1.Open;
  // 第一個欄位
  If Query1.FindField('Field1') = nil Then Begin // 檢查欄位1有沒有
    AddStr := AddStr  ',Add Field1 varChar(10)';
  End;
  // 第二個欄位
  If Query1.FindField('Field2') = nil Then Begin // 檢查欄位2有沒有
    AddStr := AddStr  ',Add Field2 Integer(10)';
  End;
  // 第三個欄位
  .....
  If AddStr <> '' Then Begin
    AddStr := Copy(AddStr,2.Length(AddStr));//把第一個','拿掉
    With Query1 Do Begin
      Close;
      SQL.Text := 'ALTER Table restaurant ' AddStr ;//一次加上所有欄位
      ExecSQL;
    End;
  End;
 
發表人 - chance36 於 2004/03/26 20:39:52
nick167
中階會員


發表:86
回覆:133
積分:53
註冊:2003-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-29 17:57:32 IP:61.228.xxx.xxx 未訂閱
非常感謝 Chance36
系統時間:2024-06-27 0:04:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!