Delphi通過sql連接sql2008資料庫,我現在需要讀取資料庫最新更新的一條記錄,提取記錄中的元素?怎么實作呢?我現在只能進行一般的資料庫的查詢、修改和上傳,大神們!!!幫幫我!!!!!
uj5u.com熱心網友回復:
這個結貼率亮點uj5u.com熱心網友回復:
可以獲取最大值啊 或者最新的日期 sSql := 'SELECT IDENT_CURRENT('+QuotedStr('TableName')+') as NextId';
uj5u.com熱心網友回復:
VARsTableName,sSql:string;
begin
sSql := 'select top(1) name from sys.objects where type=''U'' order by modify_date desc ';
sTableName:=根據sSql取值
sSql := 'select top(1) from '+sTableName+' order by id desc';
執行sSql,即得到最新的了
end;
uj5u.com熱心網友回復:
sSql := 'select top(1) name from sys.objects where type=''U'' order by modify_date desc ';sTableName:=根據sSql取值
sSql := 'select top(1) from '+sTableName+' order by id desc';
不太懂具體意思,能詳細說明一點嗎???
我現在需要讀取sql資料庫最新的記錄,并拿出記錄中的資料進行后續操作
uj5u.com熱心網友回復:
你在資料庫中執行一下select top(1) name from sys.objects where type='U' order by modify_date desc
會回傳最近動過的表的表名
sys.objects :資料庫中的視圖、表等的名字及更新時間都儲存在這個里面,type='u',說明是用戶表
select top(1) * from 你取到的表名 order by 主鍵 desc 不就是最新的資料么
uj5u.com熱心網友回復:
sTableName:=根據sSql取值:這句是什么意思,假如資料庫的表為"橢圓度測量",表里面含有ID、橢圓度、最大直徑、最小直徑等,怎么具體操作呢
uj5u.com熱心網友回復:
還有1個問題,如果我查詢出最新一條資料,怎么將最新資料一條一條讀出來,進行其他操作呢?大神,謝謝!
uj5u.com熱心網友回復:
varqry:TADOQuery;
sSql,sTable,sObjId:string;
begin
try
qry:=TADOQuery.Create(nil);
qry.Connection:=你的連接;
with qry do
begin
---------取表名
close;
sql.text:=
' SELECT top(1) OBJECT_NAME(a.OBJECT_ID) AS tableName,a.object_id'+
' FROM sys.dm_db_index_usage_stats a'+
' join sys.tables b on a.object_id=b.object_id and b.type=''U'''+
' WHERE database_id = 7--(這里寫你的資料的ID號)'+
' and a.last_user_update is not null'+
' order by a.last_user_update desc';
open;
if not Empty then
begin
sTable:=Fields[0].asString;
sObjId:=Fields[1].asString;
end
else
exit;
----------取自動增加的欄位名
close;
sql.text:= 'select name from sys.all_columns where object_id='+sObjId:+' and is_identity=1';
open;
if not Empty then
begin
sObjId:=Fields[0].asString;
end
else
exit;
--取最新一條記錄
close;
sql.text:='select top(1) * from '+sTable+' order by '+sObjId+' desc';
open;
--執行你的操作
end;
finally
if assigned(qry) then freeandnil(qry);
end;
end;
uj5u.com熱心網友回復:
資料庫的列的id 、a,c,dADOQuery1.Close;
ADOQuery1.SQL.Clear;
sSql:='select top 1 Id as MaxId from vv_ova order by ID desc';
ADOQuery1.SQL.Add(sSql);
ADOQuery1.Open;
edit16.text:=adoquery1.Fields[0].value;
edit17.text:=adoquery1.Fields[1].value;
可以得到最大的id號,并保存在edit16,為什么edit17不能得到a的值,程式運行到edit17.text時出現List index out of bound(1)
我的目的是要得到id號和a的值,大神們,幫幫我
uj5u.com熱心網友回復:
一般來說,表中都會有ID自增(或自減)欄位最新的那條就是ID=MAX(ID)或ID=MIN(ID)的那條
不然就得通過查詢系統表,正如8樓說的
不過,既然你有這個需求,為何表中就連ID都沒有呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77495.html
標籤:數據庫相關
