我可以在SQL Management Studio中成功执行查询。 ASP代码抛出错误。
Response.Write "<hr>" & sql & "<hr>"
conn3.Execute sql
ASP错误:
用于SQL Server的Microsoft OLE DB提供程序'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
我可以复制&amp;粘贴查询然后成功执行。 ASP出了什么问题?
答案 0 :(得分:2)
我使用了参数化查询,但它确实有效。
此链接有助于查找数据类型值:http://www.w3schools.com/ado/ado_datatypes.asp
PS:不要使用@Var_Date的查询字符串版本;即“MM-DD-YYYY”作为参数化输入。使用“YYYY-MM-DD”格式的参数。
答案 1 :(得分:1)
错误来自提供程序,因此确实看到数据类型不匹配。它可能在SQL Server Management Studio中运行,但在提供程序中仍然失败。我会再次查看日期文字并尝试日期格式的变化,看看你是否可以使用它。
如果提供程序根本不会传递varchar,那么您可能必须重新连接存储过程以接受varchar参数,并将它们转换为过程中的日期类型。
答案 2 :(得分:0)
我怀疑它与您的日期格式的服务器设置有关(来自您的参数名称,看起来您可能没有使用美国日期格式)。尝试检查目标数据库上的“dateformat”:
use db
go
DBCC USEROPTIONS
无论如何,您应该总是以“明确”格式之一格式化日期字符串:YYYYMMDD或YYYY-MM-DD。所以我会更改日期参数字符串值:
@Odeme_Date='2013-03-27 15:47:24', @Odeme_Valor ='2013-03-27'