使用ado組件連接到ms sql數據庫。我知道如何在db網格中顯示查詢的結果。但我想將結果作爲字符串存儲在數組中。 這是可能的還是有另一種方式來使用查詢結果?是否可以使用字符串的adoquery結果?
1
A
回答
0
我想你將不得不親自編寫代碼來解析記錄集並將值放入數組中。
1
有這樣做沒有直接的方法,但是我用AdoQuery.Recordset.GetString獲得創紀錄的字符串,這裏是我用來導出數據到CSV文件的示例。
procedure TForm2.btnExportClick(Sender: TObject);
var
Sl :TStringList;
S :string;
begin
if SaveDialog1.Execute then
begin
try
Sl := TStringList.Create;
qryExport.First;
if chkFields.Checked then
Sl.Add(GetFields(qryExport));
Sl.Add(qryExport.Recordset.GetString(2,-1,';'
,#13#10,'(Null)'));
Sl.SaveToFile(SaveDialog1.FileName);
finally
Sl.Free;
end;
end;
end;
function TForm2.GetFields(qry: TADOQuery): string;
var
I : Integer;
S : string;
begin
S := '';
for I := 0 to qry.Fields.Count - 1 do
S := S + qry.Fields[I].FieldName + ';';
Result := S;
end
1
您可以通過代碼訪問任何結果字段。該數據集包含了所有的記錄,但是你必須通過每一個代碼瀏覽:
// navigate to the first record in the set
ADODataset1.first;
// while the dataset is NOT empty ...
while not ADODataset1.eof do
begin
// process a field
sValue := ADODataset1.FieldByName('fieldname').AsString;
DoSomething(sValue);
// move the cursor to the next record
ADODataset1.Next;
end;
+1
注意調用ADODataset1.DisableControls可能會有所幫助;之前和ADODataset1.EnableControls; while循環之後可以使它快很多。 – jasonpenny 2009-11-02 18:07:13
1
您可以使用ADORecordSet.GetRows讓你的數據到一個數組。在ASP中這是一種常見的做法,可以加快頁面加載速度 - 而不是通過循環記錄集,將數據存入數組,關閉記錄集,並循環顯示數組內容。我想也可以在德爾福中應用,並取得成功。
var ... TableContents : OleVariant; ... begin ... ADORecordSet.Open('select * FROM MyTable', ADOConnection, adOpenForwardOnly, adLockReadOnly, adCmdText); TableContents := ADORecordSet.GetRows(adGetRowsRest,EmptyParam,EmptyParam); someText := TableContents[1,1]; ... end;
希望它有幫助。
相關問題
- 1. Delphi使用ClientDataSet的ADOQuery結果串聯
- 2. 是否可以導出SqlString編輯的字符串的結果?
- 3. Eclipse是否可以在字符串文本中查找結果?
- 4. 是否可以序列化C結構(結構)的JSON字符串(字符*)
- 5. 是否可以將SQL單列結果作爲逗號分隔的字符串?
- 6. 是否可以使用mysql將結果添加到結果中?
- 7. 確定字符串是否以另一個字符串結尾
- 8. utf8decode是否可以選擇字符串?
- 9. DDD是否可以解釋字符串?
- 10. 是否可以normalizr字符串?
- 11. 是否可以'git diff'2字符串?
- 12. 是否可以使用#字符串與定義的常量?
- 13. 是否可以使用python中的函數清空字符串?
- 14. 是否可以將結果集從WebMatrix.Database.Query()轉換爲XML字符串?
- 15. 是否可以使用插值字符串引用變量?
- 16. 是否可以使用格式字符串來對齊NSStrings數字可以?
- 17. 如果沒有查詢字符串,是否可以跳過HttpHandler?
- 18. 是否可以使用正則表達式編輯字符串?
- 19. 是否可以使用PHP壓縮字符串?
- 20. 是否可以使用字符串作爲索引?
- 21. 是否可以重複使用連接字符串與Phpseclib?
- 22. Android Studio:是否可以在setText中使用字符串數組?
- 23. 是否可以使用Alomofire發送加密base64字符串
- 24. Angular2 - HostListener是否可以使用變量字符串?
- 25. 是否可以在replaceAll上使用字符串變量?
- 26. 如何判斷pick()的結果是否是字符串
- 27. 是否可以增加Java中的字符串或字符?
- 28. 我可以檢查一個字符串是否以null結尾,但不檢查它是否以NULL結尾
- 29. 是否StringBuilder在ToString()調用時緩存結果字符串?
- 30. 是否可以使用字符串或字符來索引數組?
你有一個如何解析記錄集的例子嗎? – Makaku00 2009-11-02 17:10:47