我需要将数据从Excel导入SQL Server数据库。我使用ADO来读取excel文件。
有时,Excel中的行为空,这将在SQL Server端创建空行导入失败。
在导入过程中删除这些空行或检测是否有任何好主意?
我正在寻找一种相当有效的代码风格解决方案,我在这里用字段循环显示我当前的解决方案
function EmptyRow(aQuery: TADOQuery): Boolean;
var
i: Integer;
fname: string;
temp_line: string;
begin
temp_line := '';
for i := 0 to aQuery.Fields.Count - 1 do
begin
fname := aQuery.Fields[i].FieldName;
temp_line := temp_line + aQuery.FieldByName(fname).asString;
end;
if (temp_line <> '') then
result := false
else
result := true;
end;
答案 0 :(得分:2)
您可以退出第一个发现非空字符串的帖子
function EmptyRow(aQuery: TADOQuery): Boolean;
var
Field: TField;
begin
for Field in aQuery.Fields do
if Field.AsString <> '' then
exit(false);
exit(True);
end;
如果你有一个较旧的Delphi,你可以像tihs那样实现它:
function EmptyRow(aQuery: TADOQuery): Boolean;
var
I: Integer;
begin
Result := False;
for I := 0 to aQuery.Fields.Count - 1 do
if aQuery.Fields[I].AsString <> '' then
exit;
Result := True;
end;