如Student.txt如下
Code Name Score
001 aa 99
002 bb 65
003 cc 87如何导入数据表Student.dbo
Code Varchar(20),
Name Vaechar(20),
Score Varchar(10)
Code Name Score
001 aa 99
002 bb 65
003 cc 87如何导入数据表Student.dbo
Code Varchar(20),
Name Vaechar(20),
Score Varchar(10)
解决方案 »
- Unit RpSystem was compiled with a different version of RpFormPreview.TRavePrevie
- 怎样用Pagecontral模拟MDI窗体?
- 急急急!请问大虾们,怎么立即终止线程,并让线程的资源得到释放?
- 调试一个COM+组件,在COM+组件使用完毕最终退出内存时有时会出现内存地址存储错误,(一样的调用,但不是每次都有错误),在Delphi调试环
- 一个给byte 类型的变量赋值的问题++++++++++++++++++在线等待啊 ????
- 下面的代码在我的程序退出是,我是否要作清理工作?
- 我买<delphi5开发人员指南>时没给我光盘
- 一个关于F7(单步跟踪)的问题
- 高手帮忙,
- 如何取得点击窗口的句柄?
- 关于TEDIT的小问题!
- 怎样可以在选择全部字段的同时统计某个字段的总和?
以用户指定的格式复制一个数据文件至数据库表或视图中。语法
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
[ WITH
(
[ BATCHSIZE [ = batch_size ] ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ]
[ [ , ] DATAFILETYPE [ =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] ]
[ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ]
[ [ , ] FIRSTROW [ = first_row ] ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ]
[ [ , ] LASTROW [ = last_row ] ]
[ [ , ] MAXERRORS [ = max_errors ] ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH [ = rows_per_batch ] ]
[ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ]
[ , [ TABLOCK ] ]
)
] 在ADO控件里写SQL语句执行。比如:strSQL := 'BULK INSERT 数据库名.表名 FROM '数据文件.dat'
WITH (FORMATFILE = 格式文件')ADOQuery.SQL.Add(strSQL);
......
With (FORMATFILE = 格式文件')指的是什么,能详细一点吗?我的Text文件的格式如下:如Student.txt如下
Code Name Score
001 aa 99
002 bb 65
003 cc 87如何导入数据表Student.dbo
Code Varchar(20),
Name Vaechar(20),
Score Varchar(10)
unit Ufile;interfaceuses
Windows, Messages,Dialogs, SysUtils, Classes, Controls;type
Tfile = class
private
FFileName:String;
CurRow:integer;
CurCol:integer;
ListField:TStringList;
ListRecord:TStringList;
procedure SetFileName(FileName:string);
function GetFileName:string;
function GetCell(row,col:integer):string;
function GetRecordCount:integer;
function GetFieldCount(row:integer):integer;
public
{ Public declarations }
constructor Create;
destructor Destroy;
procedure Open();
procedure Clear;
property Cell[row:integer;col:integer]: String read getCell;
property FileName : string read GetFileName write SetFileName ;
property RecordCount :integer read GetRecordCount;
property FieldCount[row :integer] :integer read GetFieldCount;
end;
implementationConst BUFFER_COUNT = 1024000;constructor Tfile.Create;
begin
ListField := TStringList.Create;
ListRecord := TStringList.Create;
CurRow := -1;
CurCol := -1;
end;destructor Tfile.Destroy;
begin
ListField.Free;
ListRecord.Free;
end;procedure Tfile.Open;
var
objFile:TFileStream;
StrBuffer: array[1..BUFFER_COUNT] of char;
strch:char;
strLine:string;
iCount:integer;
begin
try
objfile := TFileStream.Create(FFileName,fmOpenRead);
except
ShowMessage('文件打开失败');
end;
Clear;
strLine := '';
// repeat
iCount := objfile.Read(strBuffer,BUFFER_COUNT-1);
// strBuffer[iCount] := '\0';
strLine := strLine+String(strBuffer);
// until
// iCount = BUFFER_COUNT-1;
ListRecord.Text := strLine; objFile.Free;
end;procedure Tfile.Clear;
begin
ListField.Clear;
ListRecord.Clear;
CurRow := -1;
CurCol := -1;
end;
procedure Tfile.SetFileName(FileName:string);
begin
FFileName:=FileName;
Open;
end;function Tfile.GetFileName:string;
begin
result:=FFileName;
end;function Tfile.GetRecordCount:integer;
begin
result := ListRecord.Count;
end;function Tfile.GetCell(row,col:integer):string;
var
value,strField:string;
ch:char;
i,Len:integer;
begin
if CurRow<>row then
begin
CurRow := row;
ListField.Clear;
if row < ListRecord.Count then
begin
value := trim(ListRecord.Strings[CurRow]);
Len := Length(value);
strField := '';
for i := 0 to len-1 do
begin
ch := value[i];
if ch=' 'then
begin
ListField.Add(strField);
strField :='';
end
else
strField := strField + ch
end;
ListField.Add(strField);
end;
end;
value := '';
if col < ListField.Count then
value := trim(ListField.Strings[col]);
result := value;
end;
function Tfile.GetFieldCount(row: integer): integer;
begin
GetCell(row,0);
result := ListField.Count;
end;end.