Foros del Web » Programando para Internet » ASP Clásico »

No se realiza insercion en postgre

Estas en el tema de No se realiza insercion en postgre en el foro de ASP Clásico en Foros del Web. Buenas estoy intentando insertar datos en una tabla en postgre y no me va. A ver si me podéis echar una mano. Muchas gracias @import ...
  #1 (permalink)  
Antiguo 29/07/2009, 09:43
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 9 meses
Puntos: 0
No se realiza insercion en postgre

Buenas

estoy intentando insertar datos en una tabla en postgre y no me va. A ver si me podéis echar una mano. Muchas gracias

Código asp:
Ver original
  1. strQuery = "SELECT     nombre,usuario FROM         usuarios WHERE     (idusuarios =(SELECT     usuarios_idusuarios FROM          tarjetas_RFID  WHERE      (tag_hash = '"&tag&"')))"
  2.  
  3. 'strQuery = "Select * from usuarios"'
  4.  
  5. Set RS = conex.Execute(strQuery)
  6. if (RS.RecordCount > 0) then
  7.     Dim usuario
  8.     set usuario = RS("usuario")
  9.     p = RS.GetRows()
  10.     strQuery = "insert into eventos (propiedades) values ('Usuario: "&p(1,0)&" se ha identificado mediante tag: "&tag&" en la tienda: "&reader&"')"
  11.     set RS = conex.Execute(strQuery)

no entra en el if, porque?

Última edición por lmalvarez; 29/07/2009 a las 09:56
  #2 (permalink)  
Antiguo 29/07/2009, 10:01
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: No se realiza insercion en postgre

como has creado el record set?????????

existen unas propiedades especiales que hay que configurar para que un RS pueda contar.


yo lo hago asi

Const adCmdText = &H0001
Const adOpenStatic = 3

Set dbcRec = Server.CreateObject("ADODB.RecordSet")
dbcRec.Open strSQL,ConEXION,adopenstatic,adcmdtext


donde ConEXION es el objeto conexion a la BD
  #3 (permalink)  
Antiguo 29/07/2009, 10:13
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: No se realiza insercion en postgre

Gracias por contestar, acabo de poner lo que me has dicho y sale lo siguiente

ADODB.Recordset (0x800A0BB9)
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.


Código asp:
Ver original
  1. Set Conex = Server.CreateObject("ADODB.Connection")
  2. 'Dsn=PostgreSQL30;database=p_comercio;server=localhost;port=5432;uid=postgres;sslmode=disable;readonly=0;protocol=7.4-1;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100;socket=4096;unknownsizes=0;maxvarcharsize=255;maxlongvarcharsize=8190;debug=0;commlog=0;optimizer=1;ksqo=1;usedeclarefetch=1;textaslongvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;cancelasfreestmt=1;extrasystableprefixes=dd_;lfconversion=1;updatablecursors=1;disallowpremature=0;trueisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0;lowercaseidentifier=0;xaopt=1'
  3. 'Conex.Open ("Driver={PostgreSQL}; Server=localhost; Database=p_comercio; Uid=postgres; Pwd=admin; port=5432")'
  4. Conex.Open ("Dsn=PostgreSQL30;database=p_comercio;server=localhost;port=5432;uid=postgres;sslmode=disable;readonly=0;protocol=7.4-1;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100;socket=4096;unknownsizes=0;maxvarcharsize=255;maxlongvarcharsize=8190;debug=0;commlog=0;optimizer=1;ksqo=1;usedeclarefetch=1;textaslongvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;cancelasfreestmt=1;extrasystableprefixes=dd_;lfconversion=1;updatablecursors=1;disallowpremature=0;trueisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0;lowercaseidentifier=0;xaopt=1")
  5. 'Dsn=PostgreSQL30;uid=postgres;pwd=admin'
  6. Response.write("Conectado a la base de datos<br/>")
  7. set RS = Server.CreateObject("ADODB.Recordset")
  8. 'RS.CursorType = 2'
  9. 'RS.Open SQL, DbConn'
  10. 'total=RS.RecordCount'
  11.  
  12. 'Const adCmdText = &H0001'
  13. 'Const adOpenStatic = 3'
  14.  
  15.  
  16.  
  17. 'Driver={PostgreSQL};Server=IP address;Port=5432;Database=myDataBase;Uid=myUserna me;Pwd=myPassword;'
  18.  
  19. 'SQL = "SELECT * FROM reclamos"'
  20. 'set DbConn = Server.CreateObject("ADODB.Connection")'
  21. 'set RS = Server.CreateObject("ADODB.Recordset")'
  22. 'DbConn.Open DSN_de_la_base_de_datos'
  23. 'RS.CursorType = 1'
  24. 'RS.Open SQL, DbConn'
  25. 'total=RS.RecordCount'
  26.  
  27. strQuery = "SELECT     nombre,usuario FROM         usuarios WHERE     (idusuarios =(SELECT     usuarios_idusuarios FROM          tarjetas_RFID  WHERE      (tag_hash = '"&tag&"')))"
  28. 'Set RS = Server.CreateObject("ADODB.RecordSet")'
  29. 'RS.Open strSQL,Conex,adopenstatic,adcmdtext'
  30. 'strQuery = "Select * from usuarios"'
  31.  
  32. Set RS = conex.Execute(strQuery)
  33. Dim i
  34. if rs.Supports(adApproxPosition)=true then
  35.     i = RS.RecordCount
  36. End If
  37. if i > 0 then
  38.     Dim usuario
  39.     set usuario = RS("usuario")
  40.     p = RS.GetRows(1,0)
  41.     strQuery = "insert into eventos (propiedades) values ('Usuario: "&p(1,0)&" se ha identificado mediante tag: "&tag&" en la tienda: "&reader&"')"
  42.     set RS = conex.Execute(strQuery)
  43.    
  44.    
  45. 'while not RS.eof'
  46. else Response.Write("no entra")
  47. End If
  #4 (permalink)  
Antiguo 29/07/2009, 10:27
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: No se realiza insercion en postgre

Para que usas las comilla simple?
  #5 (permalink)  
Antiguo 29/07/2009, 10:39
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: No se realiza insercion en postgre

Me imagino que te refieres a las comillas simples del select, pues las uso para que me pille el valor de la variable tag, si no, no me lo pilla

RecordCount me devuelve -1 (por eso no entra en el if), sin embargo estoy seguro de que devuelve al menos un registro ya que después visualizo el nombre del usuario
  #6 (permalink)  
Antiguo 30/07/2009, 01:38
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: No se realiza insercion en postgre

Buenas, al final cambié RS.RecordCount por RS.eof y funciona

Código asp:
Ver original
  1. if not RS.eof then
  2.     Dim usuario
  3.     set usuario = RS("usuario")
  4.     p = RS.GetRows(1,0)
  5.     strQuery = "insert into eventos (propiedades) values ('Usuario: "&p(1,0)&" se ha identificado mediante tag: "&tag&" en la tienda: "&reader&"')"
  6.     set RS = conex.Execute(strQuery)
  7.    
  8.    
  9. 'while not RS.eof'
  10. else Response.Write("no entra")
  11. End If

Gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:32.