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

SQL.RecordCount;

尚未結案
LPH
一般會員


發表:53
回覆:43
積分:19
註冊:2003-04-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-25 17:16:33 IP:218.162.xxx.xxx 未訂閱
為什麼用sql 開啟資料庫後取得的 qy1.RecordCount 值是 -1. I := 0; with qy1 do begin close; sql.clear; sql.add('select *from Mytqly'); if prepared = false then prepare; open; end; I := qy1.RecordCount;
minjiu
中階會員


發表:27
回覆:119
積分:69
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-25 17:29:08 IP:218.164.xxx.xxx 未訂閱
Query的RecordCount建議不要用...因為有問題.. 請用Query.Bof及Query.Eof來判斷吧.... 若真的要用,就在Query.Open後加上Query.Last;和Query.First;吧...
leo2568
中階會員


發表:54
回覆:124
積分:70
註冊:2003-09-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-25 17:41:26 IP:61.217.xxx.xxx 未訂閱
引言: 為什麼用sql 開啟資料庫後取得的 qy1.RecordCount 值是 -1. I := 0; with qy1 do begin close; sql.clear; sql.add('select *from Mytqly'); if prepared = false then prepare; open; end; I := qy1.RecordCount;
請參考這一篇hnger大大的回應: 用 Select Count(*) From TableName 取得 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40859 發表人 - leo2568 於 2003/12/25 17:47:11
LPH
一般會員


發表:53
回覆:43
積分:19
註冊:2003-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-26 14:24:23 IP:218.162.xxx.xxx 未訂閱
引言:
引言: 為什麼用sql 開啟資料庫後取得的 qy1.RecordCount 值是 -1. I := 0; with qy1 do begin close; sql.clear; sql.add('select *from Mytqly'); if prepared = false then prepare; open; end; I := qy1.RecordCount;
請參考這一篇hnger大大的回應: 用 Select Count(*) From TableName 取得 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40859 發表人 - leo2568 於 2003/12/25 17:47:11 select Count(*) From TableName 要如何取得 count 的值. 給 Var I.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-26 15:20:09 IP:63.84.xxx.xxx 未訂閱
您好﹗    Select Count(*) From TableName 此句SQL查詢出的Count資料筆數合計﹐只是一個虛擬值﹐并不是在資料表中真實存在的﹐所以無法將其指定給某個變數﹒ 有另外一個變通的方法﹐就是先把Select Count(*) From TableName的回傳值先做一個暫存表﹐然后從這個暫存表中取得此欄位值(Count)指定給變數﹐最后再將暫存表刪除﹐語法如下﹕
Var
  I : Integer;
begin
  With qy1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Count(*) Into 暫存表 From Mytqly');
      if Prepared = False then Prepare;
      ExecSQL;          Close;
      SQL.Clear;
      SQL.Add('Select * From 暫存表');
      Open;
    end;
  I := qy1.Fields[1].AsInteger;
end;
參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-26 15:44:20 IP:210.65.xxx.xxx 未訂閱
Hi:    試試
VAR
  I : INTEGER;
BEGIN
    QUERY1.CLOSE;
    QUERY1.SQL.ADD('SELECT COUNT(*) AS RECORDCOUNT FROM TABLENAME');
    QUERY1.OPEN;
    I := QUERY1.FIELDBYNAME('RECORDCOUNT').ASINTEGER;
    QUERY1.CLOSE;
END;
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
LPH
一般會員


發表:53
回覆:43
積分:19
註冊:2003-04-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-26 21:32:54 IP:61.231.xxx.xxx 未訂閱
引言: 您好﹗ Select Count(*) From TableName 此句SQL查詢出的Count資料筆數合計﹐只是一個虛擬值﹐并不是在資料表中真實存在的﹐所以無法將其指定給某個變數﹒ 有另外一個變通的方法﹐就是先把Select Count(*) From TableName的回傳值先做一個暫存表﹐然后從這個暫存表中取得此欄位值(Count)指定給變數﹐最后再將暫存表刪除﹐語法如下﹕
Var
  I : Integer;
begin
  With qy1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Count(*) Into 暫存表 From Mytqly');
      if Prepared = False then Prepare;
      ExecSQL;          Close;
      SQL.Clear;
      SQL.Add('Select * From 暫存表');
      Open;
    end;
  I := qy1.Fields[1].AsInteger;
end;
select count(*) INTO TempTab from Myqly 好像無法存入暫存表.. 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
系統時間:2024-06-27 2:53:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!