[英]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.