3
我有一个代码,它的工作原理如下:“Microsoft VBScript运行时错误“800a000d‘800a000d’
- 从URL
- 插入这个数据到一个表称为客户端 接收一些参数
- 然后我选择客户表
- 最后介绍的最后一个数据,它会尝试将这些数据插入到另一个表中调用用户。
但我发现了这个错误:
“Microsoft VBScript运行时错误“800a000d '800a000d'
类型不匹配:[字符串: ”INSERT INTO伽利略“]”
/createClient。 ASP 50行
线50是这一个:
<%
Dim insertaUsuario
Set insertaUsuario = Server.CreateObject("ADODB.Recordset")
insertaUsuario.ActiveConnection = MM_trucks_STRING
'" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
insertaUsuario.Source = "INSERT INTO galileo.users (email,password,clientid) values ('"+(selecciona.Fields.Item("email").Value)+"','"+(selecciona.Fields.Item("password").Value)+"', '" + (selecciona.Fields.Item("id").Value)+ "'"
insertaUsuario.Open()
%>
这是全码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="connects/global.asp" -->
<%
Dim inserta__MMColParamEmail
inserta__MMColParamEmail = "1"
If (Request.QueryString("email") <> "") Then
inserta__MMColParamEmail = Request.QueryString("email")
End If
%>
<%
Dim inserta__MMColParamPassword
inserta__MMColParamPasswordd = "1"
If (Request.QueryString("password") <> "") Then
inserta__MMColParamPassword = Request.QueryString("password")
End If
%>
<%
Dim inserta
Set inserta = Server.CreateObject("ADODB.Recordset")
inserta.ActiveConnection = MM_trucks_STRING
'" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
inserta.Source = "INSERT INTO galileo.clients (email,password) values ('" + Replace(inserta__MMColParamEmail, "'", "''") + "','" + Replace(inserta__MMColParamPassword, "'", "''") + "')"
inserta.Open()
%>
<%
Dim selecciona
Dim selecciona_numRows
Set selecciona = Server.CreateObject("ADODB.Recordset")
selecciona.ActiveConnection = MM_trucks_STRING
selecciona.Source = "SELECT id, email, password from clients where email='" + Replace(inserta__MMColParamEmail, "'", "''") + "' and password='" + Replace(inserta__MMColParamPassword, "'", "''") + "'"
selecciona.CursorType = 0
selecciona.CursorLocation = 2
selecciona.LockType = 1
selecciona.Open()
selecciona_numRows = 0
%>
<%= (selecciona.Fields.Item("id").Value)%>, <%= (selecciona.Fields.Item("email").Value) %>, <%= (selecciona.Fields.Item("password").Value) %>
<%
Dim insertaUsuario
Set insertaUsuario = Server.CreateObject("ADODB.Recordset")
insertaUsuario.ActiveConnection = MM_trucks_STRING
'" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
insertaUsuario.Source = "INSERT INTO galileo.users (email,password,clientid) values ('"+(selecciona.Fields.Item("email").Value)+"','"+(selecciona.Fields.Item("password").Value)+"', '" + (selecciona.Fields.Item("id").Value)+ "'"
insertaUsuario.Open()
%>
<!--If it is all ok, it redirects-->
<% Response.redirect ("default.asp")%>
那是!现在它正在工作 – 2013-03-17 22:51:39
@FranRod Recordset的Source属性可以是SQL语句,存储过程名称,表名称或Command对象。当驱动程序未能作为SQL,存储过程或表名执行时,它会尝试将源视为命令来查找它实际上是一个字符串。在将SQL分配给一个变量后,您可以用一个简单的'insertaUsuario.Open strSQL,MM_trucks_STRING'替换整个代码块,以避免这种奇怪的行为。这会给你简单的“语法错误”消息,因为它不会期望Command对象。 – 2013-03-18 07:56:43