with query1 do begin close; sql.clear; sql.add('delete from tablename where youx=true'); execsql end;
with query1 do begin close; sql.clear; sql.add('delete from tablename where youx=true'); execsql end;
with query1 do begin close; sql.clear; sql.add('delete from tablename where youx=true'); execsql end;
TO: highroad(流冰)/各位高手 我按你的寫法,先在from1中加入了一個Query1控件,然后在Button1Click加入代碼如下: procedure TForm1.Button1Click(Sender: TObject); begin with query1 do begin close; sql.clear; sql.add('delete from l_zunpsh.dbf where youx=true'); execsql end; end;以上程序在運行中提示錯誤!原因是在當前的路徑下找不到l_zunpsh.dbf表。 而我又不想在此處指定l_zunpsh.dbf表的絕對路徑。理由如下: 1. 為了保証本程序有較好的可移植性,我把所有的*.dbf表都放在Data Module中Ttabel內。在 程序運行時,根據本程序*.exe文件所在的位置為每一個Ttabel指定相對的路徑。 2. 在DataM.t_l_zunpsh中我已經指定了l_zunpsh.dbf表所在的位置。請問以上程序應該如何修改?
你要把提取 xxx.dbf 表的位置写全 才行。
可以一条一条记录的删除: for i:=0 to DataM.t_l_zunpsh.RecordCount-1 do begin if DataM.t_l_zunpsh.fieldByName('youx').AsBoolean=True then DataM.t_l_zunpsh.Delete; end;
1. 我在DataM.t_l_zunpsh中我已經指定了l_zunpsh.dbf表所在的位置。而我又不想在此處指定l_zunpsh.dbf表的絕對路徑。請問有沒有辦法使delete from 語句從DataM.t_l_zunpsh中得到l_zunpsh.dbf表的路徑? 2. 我試過Query1.dataSource屬性可以選為DataM.t_l_zunpsh,請問還有沒有其它的刪除方式? 3. 有誰試過,一條一條刪除和用delete from語句在速度上哪個快一點?
同意 newyj(方恨少;寻找第二把刷子的人) with query1 do begin close; sql.clear; sql.add('delete from tablename where youx=true'); execsql end; Query要设置DataBase Name 属性!
to: rouyue(月儿) 如果要用delete from 就必須指定tabelname的路徑,而我不想這樣做,因為在我的程序中tabelname的路徑是不確定的(而且不是*.exe所在的位置),我在每次啟動程序時通過一個參數在datamodule中為tabelname指定路徑,然后每個單元在使用數据庫時直接引用datamodule即可。所以我在這里不想再次指定tabelname的路徑,這是問題的關鍵,請問有沒有辦法能達到刪除的目的?
既然启动时已经指定了tablename的路径了,怎么会还找不到数据表的位置呢? 我又不太明白了
to: xiaofeng_cxy(萧风) 例如: l_zunpsh.dbf在c:\abc下面,我的程序文件在s:\mdir下面,我在每次啟動程序時會用一個參數來告知程序中的Data module單元,l_zunpsh.dbf在c:\abc,在其它的單元中要用到l_zunpsh.dbf中的數据時就引用Data module單元中的對應Ttable對象,一般操作都沒問題。 現在的問題是我要刪除l_zunpsh.dbf中DataM.t_l_zunpsh.fieldByName('youx').AsBoolean=True;的記錄錄。使用delete語句需要這樣寫:'delete from c:\abc\l_zunpsh.dbf where youx=true'執行絕對沒問題。但是你看清楚了,在這里我們指定了一個絕對路徑c:\abc,如果客戶在使用時將(l_zunpsh.dbf路徑的)參數改為c:\ddff,那我上面的程序在執行時肯定會出錯的!!! 為了保証整套程序有很好的移植性,我們應該允許客戶根据需要來修改相關參數。
我試用以下語句時: with query1 do begin sql.clear; sql.add('delete from C:\My Documents\delphi\hrpb\data\l_zunpsh.dbf where youx=false'); execsql end; 提示如下錯誤: Invalid use of keyword. Token:? Line Number:1'. 請問我錯在那里.
记得删除之后pack一下才能真正删除
这个与vf里头的一样吗?????
我发现我真是一无所有。
begin
close;
sql.clear;
sql.add('delete from tablename where youx=true');
execsql
end;
begin
close;
sql.clear;
sql.add('delete from tablename where youx=true');
execsql
end;
begin
close;
sql.clear;
sql.add('delete from tablename where youx=true');
execsql
end;
我按你的寫法,先在from1中加入了一個Query1控件,然后在Button1Click加入代碼如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
with query1 do
begin
close;
sql.clear;
sql.add('delete from l_zunpsh.dbf where youx=true');
execsql
end;
end;以上程序在運行中提示錯誤!原因是在當前的路徑下找不到l_zunpsh.dbf表。
而我又不想在此處指定l_zunpsh.dbf表的絕對路徑。理由如下:
1. 為了保証本程序有較好的可移植性,我把所有的*.dbf表都放在Data Module中Ttabel內。在
程序運行時,根據本程序*.exe文件所在的位置為每一個Ttabel指定相對的路徑。
2. 在DataM.t_l_zunpsh中我已經指定了l_zunpsh.dbf表所在的位置。請問以上程序應該如何修改?
for i:=0 to DataM.t_l_zunpsh.RecordCount-1 do
begin
if DataM.t_l_zunpsh.fieldByName('youx').AsBoolean=True then
DataM.t_l_zunpsh.Delete;
end;
ExtractFilePath(Application.ExeName);
不用改动,照搬上去就可以了。
2. 我試過Query1.dataSource屬性可以選為DataM.t_l_zunpsh,請問還有沒有其它的刪除方式?
3. 有誰試過,一條一條刪除和用delete from語句在速度上哪個快一點?
with query1 do
begin
close;
sql.clear;
sql.add('delete from tablename where youx=true');
execsql
end;
Query要设置DataBase Name 属性!
http://www.csdn.net/expert/topic/330/330632.shtm
如果要用delete from 就必須指定tabelname的路徑,而我不想這樣做,因為在我的程序中tabelname的路徑是不確定的(而且不是*.exe所在的位置),我在每次啟動程序時通過一個參數在datamodule中為tabelname指定路徑,然后每個單元在使用數据庫時直接引用datamodule即可。所以我在這里不想再次指定tabelname的路徑,這是問題的關鍵,請問有沒有辦法能達到刪除的目的?
我又不太明白了
例如: l_zunpsh.dbf在c:\abc下面,我的程序文件在s:\mdir下面,我在每次啟動程序時會用一個參數來告知程序中的Data module單元,l_zunpsh.dbf在c:\abc,在其它的單元中要用到l_zunpsh.dbf中的數据時就引用Data module單元中的對應Ttable對象,一般操作都沒問題。
現在的問題是我要刪除l_zunpsh.dbf中DataM.t_l_zunpsh.fieldByName('youx').AsBoolean=True;的記錄錄。使用delete語句需要這樣寫:'delete from c:\abc\l_zunpsh.dbf where youx=true'執行絕對沒問題。但是你看清楚了,在這里我們指定了一個絕對路徑c:\abc,如果客戶在使用時將(l_zunpsh.dbf路徑的)參數改為c:\ddff,那我上面的程序在執行時肯定會出錯的!!! 為了保証整套程序有很好的移植性,我們應該允許客戶根据需要來修改相關參數。
with query1 do
begin
sql.clear;
sql.add('delete from C:\My Documents\delphi\hrpb\data\l_zunpsh.dbf where youx=false');
execsql
end;
提示如下錯誤:
Invalid use of keyword.
Token:?
Line Number:1'.
請問我錯在那里.