Error ODBC Driver al intentar escribir en una BD MySQL desde ASP 3.0

alrodri
05 de Junio del 2004
Saludos,

Estoy intentando interactuar ASP 3.0 con MySQL 4.0, tengo el siguiente código:


37-set tblpruebas = Server.CreateObject("ADODB.RecordSet")
38-
39-strSQL="SELECT * FROM tblpruebas ORDER BY PRID"
40-tblpruebas.Open strSQL, cnMySQL, adOpenDynamic, adLockOptimistic,adCmdText
41-
42-if tblpruebas.EOF then
43- tblpruebas.AddNew
44- tblpruebas("PRID")=1
45-else
46- tblpruebas.MoveLast
47- vPRID=tblpruebas("PRID")
48- tblpruebas.AddNew
49- tblpruebas("PRID")=vPRID+1
50-end if
51-
52-tblpruebas("PRNOM")=vNom
53-tblpruebas("PRMAIL")=vMail
54-
55-tblpruebas("PRCODE")=vCode
56-tblpruebas("PRDATE")=Date()
57-
58-tblpruebas.UpDate
59-tblpruebas.Close
60-cnMySql.Close

Por su parte la tabla tblpruebas tiene los siguientes campos:

PRID----Type: INT
PRNOM---Type: VARCHAR(50)
PRMAIL--Type: VARCHAR(50)
PRCODE--Type: INT
PRDATE--Type: DATE

El error que recibo es el siguiente:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB status value,
if available. No work was done.
/p/index.asp, line 52

Este error, entre sus diferentes causas pueden ser:

- Incompatibilidad entre el nombre de los campos según código y el verdadero que
tiene la tabla: NO EXISTE.
- Incompatibilidad entre el tipo de dato y el tipo de campo: NO EXISTE, por que
pretendo escribir “Juan Mora” en un VARCHAR (50)
- Que la cadena sea más larga que la longitud del campo: NO LO ES.

Si hago un comentrio a las líneas 52 y 53 (la de las cadenas), todo funciona
correctamente, salvo que no guardo ni nombre, ni eMail, es decir los campos
INT y DATE no se quejan.

He probado las siguientes variantes y continua saliendo el mismo error:

52-tblpruebas("PRNOM")="Juan" //Escribiendo directamente una cadena

="'Juan'"
="'"&vNom&"'"
=trim(request.form("vNom"))

He cambiado los campos VARCHAR por MEDIUMTEXT, pero obtengo el siguiente error, referente al método UpDate:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Invalid string or buffer length
/p/index.asp, line 58


Solo puedo escribir correctamente en la tabla utilizando la sencia INSERT del PHPMyAdmin.

Para leer el contenido de los campos no genera ningún error.

Gracias por su extensa atención.