導入到什麼數據表呀.SQL Server用Dts不錯呀.或者 ADOConnection.Connected := True; ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');
用ADO连接TEXT型数据库,就能够对你的源文本文件进行表的操作了
to 樓主關於TEXT數據庫,在《Delphi 5.0開發人員指南》中有一段說明 說是TEXT還需要一個叫schema.ini的格式文件說明其說明可以參照MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetschema_ini_file.asp對於,你的分隔符號為TAB字符,我這裡有一個小小的例子;指字你的文件名 [A.TXT] ;設置其分隔字符為TAB Format=TabDelimited將上面的內容拷入schema.ini文件中即可 注意其路徑要與TXT同一目錄其SQL語句如下: Select * From OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source="e:\run\";User ID=Admin;Password=;Extended properties=Text')...[a#txt]請注意[a#txt]部分,在SQL語句中,一個文件名的“.”分隔要換成“#”
如要導入數據庫,可以用Select * Into Tablename From ... 來實現該方法在SQLServer 2K中試驗通過
procedure TForm1.Button3Click(Sender: TObject); const Source = 'a'#8''#8''#8'dddd'; var s : TStringList; i,currPos,sourceLen:integer; subStr : string; begin s:=TSTringList.Create; subStr :=''; currPos := 1; sourceLen := length(Source); while(currPos <= sourceLen) do begin if Source[currPos] = #8 then begin s.Add(subStr); subStr := ''; end else subStr := subStr + Source[currPos]; inc(currPos); end; if SourceLen > 0 then s.Add(subStr); for i:=0 to s.Count - 1 do begin ShowMessage(s[i]); end; end;
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');
說是TEXT還需要一個叫schema.ini的格式文件說明其說明可以參照MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetschema_ini_file.asp對於,你的分隔符號為TAB字符,我這裡有一個小小的例子;指字你的文件名
[A.TXT]
;設置其分隔字符為TAB
Format=TabDelimited將上面的內容拷入schema.ini文件中即可
注意其路徑要與TXT同一目錄其SQL語句如下:
Select * From OpenDataSource('Microsoft.Jet.OLEDB.4.0',
'Data Source="e:\run\";User ID=Admin;Password=;Extended properties=Text')...[a#txt]請注意[a#txt]部分,在SQL語句中,一個文件名的“.”分隔要換成“#”
來實現該方法在SQLServer 2K中試驗通過
const
Source = 'a'#8''#8''#8'dddd';
var
s : TStringList;
i,currPos,sourceLen:integer;
subStr : string;
begin
s:=TSTringList.Create;
subStr :='';
currPos := 1;
sourceLen := length(Source);
while(currPos <= sourceLen) do
begin
if Source[currPos] = #8 then
begin
s.Add(subStr);
subStr := '';
end
else
subStr := subStr + Source[currPos];
inc(currPos);
end;
if SourceLen > 0 then
s.Add(subStr); for i:=0 to s.Count - 1 do
begin
ShowMessage(s[i]);
end;
end;