SQLServerにテキストファイルをインポートするには?


tomo  2003-10-07 01:20:29  No: 5117  IP: [192.*.*.*]

みなさんこんにちわ。

Delphi7.0で作成したアプリケーションからMSSQLServer2000に
接続して、テキストファイルをあるテーブルにインポートしたいのですが
分かりません。
テキストファイルの形式はdatです。
現在はADOConnectionとADOCommandを使用して、

-------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  sCommand : String;
begin
    sCommand := 'bcp pubs..test in 'c:\data.dat ' -c -t, -r \n -SAMPLESERVER -Usa -P******)';

    ADOConnection1.Connected := False ;
    ADOConnection1.LoginPrompt := False ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=******;Persist Security Info=True;User ID=sa;Initial Catalog=sampleDB;Data Source=SAMPLESERVER' ;
    ADOConnection1.DefaultDatabase := 'trableDB' ;
    ADOConnection1.Provider := 'SQLOLEDB.1' ;

    ADOCommand1.Connection := ADOConnection2;

    ADOCommand1.CommandText := sCommand;

    ADOConnection2.Connected := True ;
end;

-------------------------------------------------------------------

としています。
が、テーブルにはデータが入っていません。
どこを直したらいいのでしょうか?教えてください。
よろしくお願いします。

編集    削除
tomo  2003-10-07 01:23:53  No: 5118  IP: [192.*.*.*]

先ほどのコードは間違ってました。
↓が問題のコードです。

procedure TForm1.Button1Click(Sender: TObject);
var
  sCommand : String;
begin
    sCommand := 'bcp pubs..test in 'c:\data.dat ' -c -t, -r \n -SAMPLESERVER -Usa -P******)';

    ADOConnection1.Connected := False ;
    ADOConnection1.LoginPrompt := False ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=******;Persist Security Info=True;User ID=sa;Initial Catalog=sampleDB;Data Source=SAMPLESERVER' ;
    ADOConnection1.DefaultDatabase := 'sampleDB' ;
    ADOConnection1.Provider := 'SQLOLEDB.1' ;

    ADOCommand1.Connection := ADOConnection1;

    ADOCommand1.CommandText := sCommand;

    ADOConnection1.Connected := True ;
end;

よろしくお願いします。

編集    削除
tomo  2003-10-07 01:23:53  No: 5119  IP: [192.*.*.*]

先ほどのコードは間違ってました。
↓が問題のコードです。

procedure TForm1.Button1Click(Sender: TObject);
var
  sCommand : String;
begin
    sCommand := 'bcp pubs..test in 'c:\data.dat ' -c -t, -r \n -SAMPLESERVER -Usa -P******)';

    ADOConnection1.Connected := False ;
    ADOConnection1.LoginPrompt := False ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=******;Persist Security Info=True;User ID=sa;Initial Catalog=sampleDB;Data Source=SAMPLESERVER' ;
    ADOConnection1.DefaultDatabase := 'sampleDB' ;
    ADOConnection1.Provider := 'SQLOLEDB.1' ;

    ADOCommand1.Connection := ADOConnection1;

    ADOCommand1.CommandText := sCommand;

    ADOConnection1.Connected := True ;
end;

よろしくお願いします。

編集    削除
HOota  2003-10-07 04:52:40  No: 5120  IP: [192.*.*.*]

sCommandの文字列がおかしくなっていませんか?

編集    削除
tomo  2003-10-07 18:48:14  No: 5121  IP: [192.*.*.*]

HOotaさんありがとうございます。

指摘のとおり自分なりに直してみたのですが、、、

procedure TForm1.Button1Click(Sender: TObject);
var
  sCommand : String;
begin
    sCommand := 'bcp pubs..test in c:\data.dat -c -t, -r \n -SAMPLESERVER -Usa -P******';
    ADOConnection1.Connected := False ;
    ADOConnection1.LoginPrompt := False ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=******;Persist Security Info=True;User ID=sa;Initial Catalog=sampleDB;Data Source=SAMPLESERVER' ;
    ADOConnection1.DefaultDatabase := 'sampleDB' ;
    ADOConnection1.Provider := 'SQLOLEDB.1' ;

    ADOCommand1.Connection := ADOConnection1;

    ADOCommand1.CommandText := sCommand;

    ADOConnection1.Connected := True ;
end;

sCommandを上記のとおりなおしてもテーブルに値が入ってきません。
そもそも書き方が間違ってるんでしょうか???

編集    削除
HOota  2003-10-07 19:10:30  No: 5122  IP: [192.*.*.*]

SQL Serverは使ったことがないので、コマンドの意味はわかりません。
ADOConnectionはつながっていなくても読み込めますか?

編集    削除