2011-10-18 5 views
0

私はinno for ms sqlスクリプトを使用してインストールパッケージを作成しています。InnoパッケージでSQL文を実行した後、sqlcmd.exeがハングしています

strParam := '-U hel -P password -S ServerName -d test -Q "sp_test"'; 
    try 
    Exec('sqlcmd.exe', strParam, '', SW_SHOW, ewWaitUntilTerminated, ResultCode); 
    result := ResultCode = 0; 
    except 
    Exec('osql.exe', strParam, '', SW_SHOW, ewWaitUntilTerminated, ResultCode); 
    result := ResultCode = 0; 
    end; 

Spは実行されますが、sqlcmd.exeを使用して黒い画面が終了するか閉じます。私は、spが実行された後にsqlcmd.exeを閉じてウィンドウを開きたい。

答えて

0

まず、sqlcmdを使用してから、Execがスローする場合は、バックアップとしてosqlを使用しようとしているようです。ドキュメントは、これはまったく動作しないことを私に示唆しています。代わりにif not Exec('sqlcmd', ...) thenが必要です。

これ以外にも、私たちはSQLの更新にosqlを使用していますが、終了しないという問題は一度もありませんでした。 2つの別々のSQLアップデートプログラムに投資する正当な理由がない場合は、よりうまく動作するものを使用してください。もしそれがosqlであるならば、それになります。

+0

それが判明したように、コンピュータのメモリに問題があった。いくつかの実行中のアプリケーションを閉じると、コードが正しく動作するようになりました。御時間ありがとうございます。 –

0

私は今日この問題に遭遇しました。私の答えは、私はSQLコマンドとSQLプログラムファイルの多くの異なるバージョンがあるということでした。私は古いバージョンのために1つのパスのステートメントを取り出し、それは動作を開始しました

関連する問題