CSVデータをDBに登録するには

解決


ゆうこりん  2006-03-28 16:42:28  No: 20722  IP: 192.*.*.*

CSVファイルのデータをDB(INTERBASE)に登録しています。
どりあえず1レコードの1項目を登録したいと考えています。

実行するとエラーが表示されます。
SQL err code -206
column unknown
CUST_CD
何が原因でしょうか?
よろしくお願い致します。

procedure TForm1.Button1Click(Sender: TObject);
var
  SL1:TStringList;
  SL2:TStringList;
  i,j :word;
  xx,zz,nam:string;
begin

    try
      IBDatabase1.Connected := Active;

      SL1:=TstringList.Create;
      SL2:=TstringList.Create;

      if Opendialog1.Execute then begin
        nam := Opendialog1.FileName;
        SL1.LoadFromFile(nam);
        for i:=0 to SL1.count-1 do begin
          SL2.CommaText := SL1[i];
          IBQuery1.Close;
          IBQuery1.SQL.Clear;
          IBQuery1.SQL.Add('insert into customer (cust_cd)');
          IBQuery1.SQL.Add('values (:cust_cd)');
          IBQuery1.ParamByName('cust_cd').AsString:=SL2[0];
          Try
            IBQuery1.ExecSQL;
          except

          end;
        end;
      end;
      Finally
        SL1.Free;
        SL2.Free;
        IBQuery1.Active       := False;
        IBDatabase1.Connected := False;
      end;

end;

end.

編集 削除
HOta  2006-03-28 17:23:32  No: 20723  IP: 192.*.*.*

項目の名前が違っています。
customer テーブルがありますか?
そのcustomer テーブルにcust_cdがありますか?
場合に依ったら、これが大文字の場合もあります。
できれば、IBConsoleなどで、確認しましょう。
混在の場合もあります。

編集 削除
ゆうこりん  2006-03-29 12:22:06  No: 20724  IP: 192.*.*.*

ご指導ありがとうございます。
IBOConsoleで確認しましたら、CUSTOMERとcustomerの2つの
テーブルがありました。
CUSTOMERにはcust_cdがありませんでした。
テーブル名の変更をしたいのですが、できませんでした。
どのようにしたらよろしいのでしょうか?

編集 削除
HOta  2006-03-29 14:11:53  No: 20725  IP: 192.*.*.*

ほんとは、テーブル作成時にすればいいのですが。
こんな場合は、項目やテーブル名をダブルクオーテーション(")
で括ったSQL文を発行すればOKです。

編集 削除
ゆうこりん  2006-03-29 14:51:17  No: 20726  IP: 192.*.*.*

すみません。

項目やテーブル名をダブルクオーテーション(")とは
どのように記述すればよろしいのでしょうか?

お手数ですがよろしくお願い致します。

編集 削除
HOta  2006-03-29 15:45:06  No: 20727  IP: 192.*.*.*

Ex.)
>          IBQuery1.SQL.Add('insert into customer (cust_cd)');

          IBQuery1.SQL.Add('insert into "customer" ("cust_cd")');
                                        ^        ^  ^       ^
こうですね。この場合は、必ず登録されたテーブル名と全く同じにしてください。

編集 削除
ゆうこりん  2006-03-30 15:28:30  No: 20728  IP: 192.*.*.*

丁寧にご指導ありがとうございました。

編集 削除