从Excel导入到SQL的问题!
var
xlsFilename: string;
MyWorkBook,ExcelApp: OleVariant;
J,i : integer;
begin
ExcelApp:=CreateOLEObject('Excel.Application');
MyWorkBook:=ExcelApp.WorkBooks.Open(xlsFilename);
J:=MyWorkBook.ActiveSheet.UsedRange.Rows.Count;
try
i:=1;
while i<j+1 do
begin
ADOQuery1.ConnectionString:=connetstr;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into B(BID,Bcaption,DFF,TF)');
ADOQuery1.SQL.Add('values('''+uppercase(Trim(MyWorkBook.WorkSheets[1].Cells[i,1]))+''','''+uppercase(Trim(MyWorkBook.WorkSheets[1].Cells[i,2]))+''','''+uppercase(Trim(MyWorkBook.WorkSheets[1].Cells[i,5]))+''',cast('''+uppercase(Trim(MyWorkBook.WorkSheets[1].Cells[i,6]))+''' as int))');
ADOQuery1.ExecSQL;
i:=i+1;
end;
except
ShowMessage('Excel文件格式不对或存在其他问题!请修正后再进行导入.');
Exit;
end;
end;
其中BID是主关键字,不能为空!
在执行数据导入时出现“不能插入重复值”的提示,但是我的Excel表没有重复值,检查数据表B后,
发现有一条记录是空的,而Excel表的数据却已经导入到SQL数据库的表B里啦。
如果把BID不设置为主关键字,也不能为空,数据是可以导入到数据库里,但是出现很多空的记录!
请问我的导入操作有什么问题?
谢谢!