将数据从Excel导入SQL Server

时间:2015-11-24 18:37:31

标签: sql-server excel delphi

我需要将数据从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;

1 个答案:

答案 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;