在開發(fā)數(shù)據(jù)庫(kù)的應(yīng)用的時(shí)候,經(jīng)常需要寫入日志,比如某個(gè)日志需要記錄用戶打開程序的時(shí)間和用戶關(guān)閉程序的時(shí)間,顯然這是兩個(gè)動(dòng)作,因?yàn)橛脩舸蜷_程序可能需要使用一段時(shí)間才會(huì)關(guān)閉。那么當(dāng)用戶打開程序時(shí),我們首先就需要插入一條日志記錄,記錄下當(dāng)前用戶打開的時(shí)間,同時(shí)需要返回當(dāng)前日志的ID值(自增),以方便用戶關(guān)閉程序時(shí)使用該ID更新日志記錄的關(guān)閉時(shí)間字段。
在Delphi中可以使用如下簡(jiǎn)單方法直接獲取到當(dāng)前對(duì)話的ID值:
var
ID : integer;
FDConnection := TFDConnection.Create(nil);
try
FDConnection.ConnectionDefName := Get_DBConnectionStr; //數(shù)據(jù)庫(kù)連接參數(shù)串
ID := FDConnection.ExecSQLScalar('INSERT INTO 表名 (name,age) VALUES(:A1,:A2); SELECT scope_identity()',['sensor',42]);
finally
FDConnection.Free;
end;
說明:
1.?SELECT scope_identity() 語句是重點(diǎn);
2. FDConnection 會(huì)把整個(gè)?ExecSQLScalar 中的語句整體作為一個(gè)事務(wù)(會(huì)話),所以即便是多賬戶操作插入,返回的ID也是正確的。文章來源:http://www.zghlxwxcb.cn/news/detail-512428.html
3.?ExecSQLScalar中是可以輸入寫多條SQL語句的。文章來源地址http://www.zghlxwxcb.cn/news/detail-512428.html
到了這里,關(guān)于Delphi 中操作MS SQL Server 返回剛插入的自增ID列值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!