線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2580
推到 Plurk!
推到 Facebook!

SQL Update 語法一問

答題得分者是:kadee
yjs
一般會員


發表:2
回覆:6
積分:1
註冊:2009-11-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-03 08:18:31 IP:59.125.xxx.xxx 訂閱
[code delphi]
procedure TForm1.Button2Click(Sender: TObject);

begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('Update PALTG set TG018=K' );
ADOQuery1.sql.add('where TG001 like :mc1 and TG002 like :mc2');
ADOQuery1.Parameters.ParamByName('mc1').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('mc2').Value:=Edit2.Text;
if ADOQuery1.ParamCheck=False then ADOQuery1.Prepared;
ADOQuery1.Open;
end;

[/code]
請問一下,上面的程式執行後,會有無效的資料行,問題出在 這行ADOQuery1.sql.add('Update PALTG set TG018=c' );
不知如何更改才對
我的目的是要透過button2去修改ms-sql內某一欄位值等於 K 英文字母的K
還是有另一種方法,利用DBgrid顯示出來的資料直接在上面修改,修改後,直接存入資料庫!!!



老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-03 09:00:07 IP:59.120.xxx.xxx 未訂閱
ADOQuery1.ParamCheck設為True呢?也沒辦法嗎?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-03 09:04:09 IP:114.32.xxx.xxx 未訂閱
您好,

"某一欄位值等於 K 英文字母的K"

那 k 是字串常數, 要用 單引號 或 雙引號 (要看您所使用的 db 對字串的定義) 包起來


------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
yjs
一般會員


發表:2
回覆:6
積分:1
註冊:2009-11-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-03 11:16:54 IP:59.125.xxx.xxx 訂閱
已經設為True了一樣無法!
yjs
一般會員


發表:2
回覆:6
積分:1
註冊:2009-11-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-03 11:18:38 IP:59.125.xxx.xxx 訂閱

===================引 用 st33chen 文 章===================
您好,

"某一欄位值等於 K 英文字母的K"

那 k 是字串常數, 要用 單引號 或 雙引號 (要看您所使用的 db 對字串的定義) 包起來

?
改過單引號或雙引號將字母包起來 一樣會有無效資料行!!
max5020
資深會員


發表:26
回覆:277
積分:320
註冊:2003-06-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-12-03 11:37:42 IP:122.146.xxx.xxx 訂閱

[code delphi]
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('Update PALTG set TG018=''K''' );
ADOQuery1.sql.add('where TG001 like ' QuotedStr(Edit1.Text) ' and TG002 like ' QuotedStr(Edit2.Text));
ADOQuery1.Open;
end;

[/code]

編輯記錄
max5020 重新編輯於 2009-12-03 11:39:21, 註解 無‧
yjs
一般會員


發表:2
回覆:6
積分:1
註冊:2009-11-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-12-03 16:54:44 IP:59.125.xxx.xxx 訂閱

===================引 用 max5020 文 章===================

[code delphi]
procedure TForm1.Button2Click(Sender: TObject);
begin?
? ADOQuery1.Close;?
? ADOQuery1.SQL.Clear;?
? ADOQuery1.sql.add('Update PALTG set TG018=''K''' );?
? ADOQuery1.sql.add('where TG001 like ' QuotedStr(Edit1.Text) ' and TG002 like ' QuotedStr(Edit2.Text));?
? ADOQuery1.Open;?
end;

[/code]

執行上面程式已可以將資料寫入資料庫了!但會有 "ADOQuery1:CommandText does not return a result set 的錯誤!
還在研究中,請知道的人告知一下吧!

kadee
高階會員


發表:11
回覆:141
積分:165
註冊:2002-03-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-12-03 17:05:47 IP:59.127.xxx.xxx 訂閱
ADOQuery1.Open; -- > ADOQuery1.ExecSQL;


******
必利得免費進銷存 總帳系統
(不限時間筆數,含網路版),
歡迎下載使用
www.bigredinf.net 必利得資訊
******
===================引 用 yjs 文 章===================

===================引 用 max5020 文 章===================

[code delphi]
procedure TForm1.Button2Click(Sender: TObject);
begin?
? ADOQuery1.Close;?
? ADOQuery1.SQL.Clear;?
? ADOQuery1.sql.add('Update PALTG set TG018=''K''' );?
? ADOQuery1.sql.add('where TG001 like ' QuotedStr(Edit1.Text) ' and TG002 like ' QuotedStr(Edit2.Text));?
? ADOQuery1.Open;?
end;

[/code]

執行上面程式已可以將資料寫入資料庫了!但會有 "ADOQuery1:CommandText does not return a result set 的錯誤!
還在研究中,請知道的人告知一下吧!

------
Kadee/BigRed Ent.
www.tw165.com
系統時間:2024-03-28 22:33:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!