繁体   English   中英

经典ASP无法执行存储过程

[英]Classic ASP cannot execute stored procedure

我可以在SQL Management Studio中成功执行查询。 ASP代码引发错误。

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

ASP错误:

用于SQL Server的Microsoft OLE DB提供程序Hat'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怎么了?

我使用了参数化查询,并且有效。

该链接有助于查找数据类型值: http : //www.w3schools.com/ado/ado_datatypes.asp

PS:请勿使用@Var_Date的查询字符串版本; 即“ MM-DD-YYYY”作为参数输入。 使用“ YYYY-MM-DD”格式的参数。

该错误来自提供程序,因此确实会看到数据类型不匹配。 它可能在SQL Server Management Studio中运行,但在提供程序中仍然失败。 我将再次查看日期文字,并尝试使用日期格式的变体,看看是否可以使用它。

如果提供程序根本不会传递varchar,则可能必须重新连接存储过程以接受varchar参数,然后将它们转换为过程内部的日期类型。

我怀疑这与您有关日期格式的服务器设置有关(从您的参数名称看来,您可能未在使用美国日期格式)。 尝试检查目标数据库上的“ dateformat”:

use db
go

DBCC USEROPTIONS

无论如何,您应始终将日期字符串的格式设置为“明确”格式之一:YYYYMMDD或YYYY-MM-DD。 因此,我将更改日期参数字符串值:

@Odeme_Date='2013-03-27 15:47:24', @Odeme_Valor ='2013-03-27'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM