0

SQLManagementStudioでクエリを正常に実行できます。ASPコードはエラーをスローします。

        Response.Write "<hr>" & sql & "<hr>"            
        conn3.Execute sql

ASPエラー:

Microsoft OLE DB Provider for SQL Server hata '80040e07'

データ型varcharをsmalldatetimeに変換中にエラーが発生しました。

SQLクエリ:

exec db.dbo.stored_proc1 @artID='6226', 
  @Odeme_Date='3-27-2013 15:47:24', @Odeme_Valor ='3-27-2013', 
  @OnceAnapara=0, @GecZamHemen= 1, @ODENEN_TUTAR = '263.69' , 
  @Odeme_Tip=3, @BankID=62, @MakbuzTanimID=45, @BilinmeyenID=NULL, 
  @CariAvansID=NULL, 
  @USERID=62, @MakbuzNO=NULL, @SelectedID='(817843)', 
  @Mesaj=NULL, @idleriGosterme=0, @CariCekID=NULL, 
  @CariSenetID=NULL

クエリをコピーして貼り付けて、正常に実行できます。ASPの何が問題になっていますか?

4

3 に答える 3

2

パラメータ化されたクエリを使用しましたが、機能しました。

このリンクは、データ型の値を見つけるのに役立ちました:http ://www.w3schools.com/ado/ado_datatypes.asp

PS:@Var_Dateのクエリ文字列バージョンは使用しないでください。つまり、パラメータ化された入力としての「MM-DD-YYYY」。「YYYY-MM-DD」形式のパラメータを使用してください。

于 2013-03-28T07:52:35.413 に答える
1

エラーはプロバイダーから発生しているため、実際にはデータ型の不一致が見られます。SQL Server Management Studioで実行できますが、プロバイダーでは失敗します。日付リテラルをもう一度見て、日付形式のバリエーションを試して、それが機能するかどうかを確認します。

プロバイダーがvarcharをまったく渡さない場合は、ストアドプロシージャを再配線して、varcharパラメータを受け入れ、プロシージャ内でそれらを日付タイプに変換する必要がある場合があります。

于 2013-03-27T14:55:00.893 に答える
0

日付形式に関するサーバー設定と関係があると思われます(パラメーター名から、おそらく米国の日付形式を使用していないようです)。ターゲットデータベースで「dateformat」を確認してみてください。

use db
go

DBCC USEROPTIONS

とにかく、日付文字列は常に「明確な」形式の1つ(YYYYMMDDまたはYYYY-MM-DD)でフォーマットする必要があります。したがって、日付パラメータの文字列値を変更します。

@Odeme_Date='2013-03-27 15:47:24', @Odeme_Valor ='2013-03-27'
于 2013-03-27T14:46:23.193 に答える