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

请问。这SQL语法错在哪里?

答題得分者是:cwc65536
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-10 10:42:02 IP:220.178.xxx.xxx 訂閱
procedure TForm1.Button2Click(Sender: TObject);
begin
with query1 do
begin
sql.Clear;
sql.Add('delete form employee');
sql.Add('where tmpno=:v7');
parambyname('v7').asstring:=table1.FieldValues['tmpno'];
execsql;
end;
table1.Refresh;
end;


系统提示是invalid use of keyword
但我找不出原因。
------
新手。。
ChungLin.Net
中階會員


發表:2
回覆:33
積分:52
註冊:2006-07-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-10 11:14:05 IP:59.105.xxx.xxx 訂閱
sql.Add('where tmpno=:v7');

SQL 的語法並非 Delphi 你把2者混用了
改成這樣試試吧~
sql.Add('where tmpno=v7');

===================引 用 57605993 文 章===================
procedure TForm1.Button2Click(Sender: TObject);
begin
with query1 do
begin
sql.Clear;
sql.Add('delete form employee');
sql.Add('where tmpno=:v7');
parambyname('v7').asstring:=table1.FieldValues['tmpno'];
execsql;
end;
table1.Refresh;
end;


系统提示是invalid use of keyword
但我找不出原因。
------
無限的想像,無盡的延伸。
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-10 12:34:37 IP:220.178.xxx.xxx 訂閱
按照你的方法改了,出现了另外一个错误:
table1:field 'tmpno' not found.
我使用的数据表是D7里面自带的employee,这个tmpno应该没搞错,里面确实有。
是不是那个设置 索引字段 的问题,这个概念我太明白,
以前用Table的时候出现关于索引字段的问题,把Indexname属性值设置成字段名。
这个Query里,我找不到那个属性值。
能帮我讲解一下 索引字段,还有主键的概念吗?

------
新手。。
ChungLin.Net
中階會員


發表:2
回覆:33
積分:52
註冊:2006-07-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-10 13:49:41 IP:59.105.xxx.xxx 訂閱
不好意思,我對 Delphi 並不了解,只能稍稍看一下
從您這段程式中無法看出,tabel1對SQL所做的動作
所以無從得知為什麼會出現這樣的訊息...
tabel 的元件 我本身尚未使用過,所以對其使用方
法不甚了解 ^^"
------
無限的想像,無盡的延伸。
編輯記錄
ChungLin.Net 重新編輯於 2007-10-10 13:56:12, 註解 無‧
ChungLin.Net 重新編輯於 2007-10-10 13:59:37, 註解 無‧
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-10-10 14:54:32 IP:203.203.xxx.xxx 訂閱
請在 where 之前, 加一個空白看看

另外, 用 debug 方式, trace 程式, 看 sql.text 內容, 語法是否正常
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-10-10 14:57:17 IP:203.203.xxx.xxx 訂閱
from 吧 !


===================引 用 57605993 文 章===================
procedure TForm1.Button2Click(Sender: TObject);
begin
with query1 do
begin
sql.Clear;
sql.Add('delete form employee');
sql.Add('where tmpno=:v7');
parambyname('v7').asstring:=table1.FieldValues['tmpno'];
execsql;
end;
table1.Refresh;
end;


系统提示是invalid use of keyword
但我找不出原因。
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-10-10 15:44:15 IP:220.178.xxx.xxx 訂閱
虽然不想,但我还是要问这个会让你抓狂的问题:
什么是。。debug方式,trace程式。
因为这些代码都是我从书上看的。
基本上。。我还是个新手。
===================引 用 cwc65536 文 章===================
請在 where 之前, 加一個空白看看

另外, 用 debug 方式, trace 程式, 看 sql.text 內容, 語法是否正常
------
新手。。
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-10-10 15:51:13 IP:220.178.xxx.xxx 訂閱
哈!这个确实是个错误,粗心的错误。
但改过来以后问题依然存在,在WHERE前面加了空格,也不行
提示错误还是:table1: field 'tmpno' not found;
我想应该不是语法错误了。

===================引 用 cwc65536 文 章===================
from 吧 !


===================引 用 57605993 文 章===================
procedure TForm1.Button2Click(Sender: TObject);
begin
with query1 do
begin
sql.Clear;
sql.Add('delete form employee');
sql.Add('where tmpno=:v7');
parambyname('v7').asstring:=table1.FieldValues['tmpno'];
execsql;
end;
table1.Refresh;
end;


系统提示是invalid use of keyword
但我找不出原因。
------
新手。。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-10-10 15:57:48 IP:61.67.xxx.xxx 未訂閱
請比對這句SQL 與你的有那裡不同
delete from employee where tmpno=:v7
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-10-10 16:07:48 IP:220.178.xxx.xxx 訂閱
from 被我打成 form。呵呵,不好意思,太粗心。
现在我把代码改过来。
procedure TForm1.Button2Click(Sender: TObject);
begin
with query1 do
begin
sql.Clear;
sql.Add('delete from employee');
sql.Add('where tmpno=:v7');
parambyname('v7').asstring:=table1.FieldValues['tmpno'];
execsql;
end;
table1.Refresh;
end;
但是问题依然出现:,table1:field 'tmpno' not found;

===================引 用 P.D. 文 章===================
請比對這句SQL 與你的有那裡不同
delete from employee where tmpno=:v7
------
新手。。
57605993
一般會員


發表:2
回覆:8
積分:2
註冊:2007-10-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-10-10 19:27:22 IP:220.178.xxx.xxx 訂閱
对不起各位。我太粗心了,这次又是搞错;
把字段名empno打成tmpno了。。。麻烦大家这么长时间!不好意思
------
新手。。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-10-11 23:51:30 IP:61.67.xxx.xxx 未訂閱
下回要先打屁股三下
系統時間:2024-05-17 19:05:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!