2013-03-17 122 views
3

我有一个代码,它的工作原理如下:“Microsoft VBScript运行时错误“800a000d‘800a000d’

  1. 从URL
  2. 插入这个数据到一个表称为客户端
  3. 接收一些参数
  4. 然后我选择客户表
  5. 最后介绍的最后一个数据,它会尝试将这些数据插入到另一个表中调用用户。

但我发现了这个错误:

“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")%> 

回答

3

你在你的SQL字符串中最后一个'后'缺少一个')'。但我不知道为什么你会得到这种错误信息。

+0

那是!现在它正在工作 – 2013-03-17 22:51:39

+1

@FranRod Recordset的Source属性可以是SQL语句,存储过程名称,表名称或Command对象。当驱动程序未能作为SQL,存储过程或表名执行时,它会尝试将源视为命令来查找它实际上是一个字符串。在将SQL分配给一个变量后,您可以用一个简单的'insertaUsuario.Open strSQL,MM_trucks_STRING'替换整个代码块,以避免这种奇怪的行为。这会给你简单的“语法错误”消息,因为它不会期望Command对象。 – 2013-03-18 07:56:43

相关问题