2009-05-29 10 views
0

vb.netを使用してセキュリティで保護されたSQLデータベースにテーブルをインポートしようとしていますが、タイムアウト(または思っています)で正しくインポートできません。フィールドタイプを保存し、ファイルやvb.netからデータベースをインポートする際の問題

をインポートするためにシェル()関数を呼び出し、これは戻らない「検証インポートテーブル内の既存のデータ

cmd.CommandText = "TRUNCATE TABLE HedgeFileBuilders.dbo.HedgeInput_" & strProduct & "_VALIDATOR;" 
cmd.ExecuteNonQuery() 

're-import the inforce file to validate it 

Try 
    If chkSQLServerSource Then 
    Shell(SQLLOCALDIR & "Prog\bcp.exe FileBuilders.dbo.Input_" & strProduct & "_VALIDATOR in " & strFileName & " -c -t , -r \n -S server -U user -P passkey -F 2 -h TABLOCK", AppWinStyle.Hide, True) 
    Else 
    Shell(SQLLOCALDIR & "Prog\bcp.exe FileBuilders.dbo.Input_" & strProduct & "_VALIDATOR in " & strFileName & " -c -t , -r \n -S pcname -T -F 2 -h TABLOCK", AppWinStyle.Hide, True) 
    End If 
Catch ex As Exception 
    MessageBox.Show("ERROR: An error occurred while re-importing the new business file. Contact the system administrator. " & ex.Message, "Contact System Administrator", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    Exit Sub 
End Try 

を一掃」にテーブルとエラーが、結果はnullです。私はSQLで手動でインポートを行い、すべてのデータがそこにあります。上記のstrFilenameとTable nameをvbコードから使用して、手動でインポートするときに名前が間違っていないことを確認することさえできます。

私は間違っていますか?

P.S.私はタイムアウト整数パラメータ '-l'をブール値「True」の後に試してみましたが、それは役に立ちませんでした。

答えて

0

私がインポートしようとしていたテーブルのデータ型が切り捨てられていたSQLテーブルと異なっていて、インポートされたデータを追加しました(nullおよびnot nullsなど)一致させるためにデータ型を修正しました。期待される。

0

実行している文字列(ローカル変数でビルド)を既知の正常なバッチ/ cmdファイルの類似した文字列と比較することをお勧めします。

また、bcp.exeのディレクトリにスペースがある場合は、文字列の実行可能パス全体を二重引用符で囲む必要があります。 strFilenameの場合も同様です。

基本的に、同じファイルの既知の手動コマンドラインインポートがコードで生成されていることを確認してください。

関連する問題