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

向dbgrid插入數據,並實時顯示

答題得分者是:st33chen
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-11 23:45:27 IP:222.240.xxx.xxx 訂閱
隨機的産生一系列從45到60的實數(比如45.124),並將其插入dbgrid中作為“字段1”顯示數來,並在‘字段2’顯示當前的時分秒,並在‘字段3’顯示當前的年月日,同時將隨即産生的數據在tchart中繪制成曲線,最後還要根據日期來進行查詢當天的實時曲線。
因為對數據庫方面的操作不知道怎麽弄,還希望各個高手能幫忙指點迷津,謝謝?
老大仔
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-12 02:34:41 IP:59.114.xxx.xxx 未訂閱
請問您說的操作是指什麼呢?連接DB??新增修改查詢刪除??

用什麼資料庫??Access??MSSQL??MYSQL??...哪一種?
以Access為例,先提供幾個有關怎麼連Access請看下面這篇
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=85597
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=83073#4(小小的解說)
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=64086

假如還想要其他的資訊
可以先在版上搜尋相關文章^^


===================引 用 blue36sea 文 章===================
隨機的産生一系列從45到60的實數(比如45.124),並將其插入dbgrid中作為“字段1”顯示數來,並在‘字段2’顯示當前的時分秒,並在‘字段3’顯示當前的年月日,同時將隨即産生的數據在tchart中繪制成曲線,最後還要根據日期來進行查詢當天的實時曲線。
因為對數據庫方面的操作不知道怎麽弄,還希望各個高手能幫忙指點迷津,謝謝?
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-12 15:59:23 IP:202.197.xxx.xxx 訂閱
在對ADOQUERY1進行添加數據操作的時候,     
fieldbyname('time').Asstring:=formatdatetime('hh:mm:ss',now);
fieldbyname('date').Asstring:=formatdatetime('yyyy-mm-dd',now);
使用的是access數據庫,定義的time字段為長時間格式'17:12:00';但是在程序運行時time字段顯示的是‘1989-11-10 下午 03:02:03’的格式,請問為什麽會這樣?
還有應為我使用tchart畫圖,其中橫坐標顯示的是時間格式為'hh:mm:ss',但是因為遇到格式轉換問題,說formatdatetime('hh:mm:ss',now);是string類型,而tchart的橫坐標是double型,類型不匹配,但是我又不知道怎麽解決,就只定義了Series1.XValues.DateTime := True ;結果橫坐標就顯示“1989-11-10 ”,後面每畫一個數,橫坐標的日期就加一天的那種格式,好奇怪哦?
st33chen
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-12 23:56:57 IP:122.116.xxx.xxx 未訂閱
您好,

我測試的例子如下,
procedure TForm1.Button1Click(Sender: TObject);
var ii: integer;
begin
series1.AddXY(1.123,2);
series1.AddXY(1.523,3);
series1.AddXY(2.20124312, 4);
series1.XValues.DateTime := true;
for ii := 0 to series1.Count-1 do begin
series1.XLabel[ii] := formatdatetime('hh:nn:ss', series1.XValues[ii]);
end;
end;
不管存入, 只管取出值後如何顯示.
(因為 datetime 用實數存值, 您存 time 時, date 部份為 0 在我 d6 他代表 1899-12-30.)
是不是您所要的, 參考一下

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


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-13 09:26:53 IP:202.197.xxx.xxx 訂閱
procedure TForm1.Timer2Timer(Sender: TObject); var y,x:double; begin randomize; x:=random(15000)/1000 45.000; y:=a*power(x,2) b*x c; with adotable1 do begin open; edit; append; fieldbyname('weight').AsFloat:=x; fieldbyname('flow').AsFloat:=y; fieldbyname('time').Asstring:=formatdatetime('hh:nn:ss',now);? fieldbyname('date').Asstring:=formatdatetime('yyyy-mm-dd',now); post; end; Series1.XValues.DateTime := True ; // series1.XLabel:= formatdatetime('hh:nn:ss', Series1.XValues);? //Series1.XValues.Value:=formatdatetime('hh:mm:ss',now);? //Series1.XValues.Value:= strtodatetime(formatdatetime('hh:mm:ss',now));? Series1.Addy(y,'',clTeeColor); end; (1)我這裏要顯示的是X坐標的值,因為我SERIES畫圖操作我是定義在timer裏面的,所以是橫坐標顯示的是當前時間,timer每秒觸發一次,所以X橫坐標的值要顯示的依次是‘18:02:14’'18:02:15'‘18:02;:16’'18:02:17'...這樣的格式。(2)fieldbyname('time').Asstring:=formatdatetime('hh:nn:ss',now);?在DBGRID中顯示的時間格式是‘1899-12-30 下午03:02:14’,請問這個要怎麽把它變為‘15:02:14'這種格式?
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-05-13 09:27:39 IP:202.197.xxx.xxx 訂閱
procedure TForm1.Timer2Timer(Sender: TObject); var y,x:double; begin randomize; x:=random(15000)/1000 45.000; y:=a*power(x,2) b*x c; with adotable1 do begin open; edit; append; fieldbyname('weight').AsFloat:=x; fieldbyname('flow').AsFloat:=y; fieldbyname('time').Asstring:=formatdatetime('hh:nn:ss',now); fieldbyname('date').Asstring:=formatdatetime('yyyy-mm-dd',now); post; end; Series1.XValues.DateTime := True ; // series1.XLabel:= formatdatetime('hh:nn:ss', Series1.XValues); //Series1.XValues.Value:=formatdatetime('hh:mm:ss',now); //Series1.XValues.Value:= strtodatetime(formatdatetime('hh:mm:ss',now)); Series1.Addy(y,'',clTeeColor); end;
編輯記錄
blue36sea 重新編輯於 2009-05-13 09:29:00, 註解 無‧
blue36sea 重新編輯於 2009-05-13 09:35:31, 註解 無‧
st33chen
尊榮會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-05-13 10:05:54 IP:118.168.xxx.xxx 未訂閱
datetime 格式的欄位就用一個欄位存, 不要分 date 一欄, time 一欄
後來要用時, 當用到 date 部份就轉 yyyy-mm-dd 格式, 用到 time 部份時就轉成 hh:nn:ss 格式
這樣會不會比較簡單

依您目前的設計
雙擊 dbgrid 所對應的 dataset (假設為 query1) 會出現一個 欄位編輯視窗
找到 time 的欄位, 指定其 display format
看看
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-05-14 16:31:55 IP:202.197.xxx.xxx 訂閱
在我的DELPHI6中,字段time欄沒有displayformat屬性,dbgrid1.Columns[2]指的是time字段,
Tdatetimefield(dbgrid1.Columns[2]).displayformat:='hh:nn:ss';
使用上面的來設置格式後,運行出錯.

===================引 用 st33chen 文 章===================
datetime 格式的欄位就用一個欄位存, 不要分 date 一欄, time 一欄
後來要用時, 當用到 date 部份就轉 yyyy-mm-dd 格式, 用到 time 部份時就轉成 hh:nn:ss 格式
這樣會不會比較簡單

依您目前的設計
雙擊 dbgrid 所對應的 dataset (假設為 query1) 會出現一個 欄位編輯視窗
找到 time 的欄位, 指定其 display format
看看
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-05-14 17:22:13 IP:202.197.xxx.xxx 訂閱
經過設置
begin
with ADOQuery1 do
begin
close;
sql.Add('select * from table1');
open;
TdateTimeField(DBGrid1.Columns.items[2].field).DisplayFormat:='hh:nn'; //items[1]表示時間字段的位置
end;
end;
問題解決達,謝謝各位的回帖!
st33chen
尊榮會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-05-14 20:47:01 IP:122.116.xxx.xxx 未訂閱
您好,

我測試的例子如下,
procedure TForm1.Button1Click(Sender: TObject);
var ii: integer;
begin
series1.AddXY(1.123,2);
series1.AddXY(1.523,3);
series1.AddXY(2.20124312, 4);
series1.XValues.DateTime := true;
for ii := 0 to series1.Count-1 do begin
series1.XLabel[ii] := formatdatetime('hh:nn:ss', series1.XValues[ii]);
end;
end;
不管存入, 只管取出值後如何顯示.
(因為 datetime 用實數存值, 您存 time 時, date 部份為 0 在我 d6 他代表 1899-12-30.)
是不是您所要的, 參考一下

------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
系統時間:2024-05-17 0:35:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!