大部分项目都会遇到生成标准文本数据文件,即逗号分隔文件(csv),今使用已做过的项目中的代码(delphi)抛砖引玉!
此代码,提供ADO层面的数据控制,结合SQL语句完成CSV列的控制。
unit UGeneralADO; interface uses SysUtils, Classes, ADODB; var saveFilePath:WideString; function generalCSV(ADOconnectString,ColName,TableName1,ExprotFileName1:WideString;ColCount:integer):Boolean; implementation function generalCSV(ADOconnectString,ColName,TableName1,ExprotFileName1:WideString;ColCount:integer):Boolean; var ADOConnectX:TADOConnection; ADOQueryX:TADOQuery; TempStr:WideString; iFor: integer; TempList:TStringList; begin ADOConnectX:=TADOConnection.Create(nil); ADOQueryX:=TADOQuery.Create(nil); ADOConnectX.LoginPrompt:=False; ADOConnectX.Close; ADOConnectX.ConnectionString:=ADOconnectString; ADOConnectX.Open; ADOQueryX.Connection:=ADOConnectX; ADOQueryX.Close; ADOQueryX.SQL.Text:='select '+ColName+' from '+TableName1; ADOQueryX.Open; TempStr := ''; TempList := TStringList.Create; ADOQueryX.First; while not ADOQueryX.Eof do begin TempStr := ''; for iFor := 0 to ColCount-1 do//colcount列 begin if iFor=0 then begin TempStr := TempStr + ADOQueryX.Fields[iFor].AsString; end else begin TempStr := TempStr +','+ ADOQueryX.Fields[iFor].AsString; end; end; TempList.Append(TempStr); ADOQueryX.Next; end; saveFilePath:=ExprotFileName1; TempList.SaveToFile(saveFilePath); //free object FreeAndNil(TempList); FreeAndNil(ADOConnectX); FreeAndNil(ADOQueryX); Result:=True; end; end.