Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - PostgreSQL C# ERROR 22P02: el valor de array debe comenzar
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information PostgreSQL C# ERROR 22P02: el valor de array debe comenzar

Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: PostgreSQL C# ERROR 22P02: el valor de array debe comenzar Responder citando

Estoy usando las indicaciones de este post de vuestro foro:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=1528

Para ejecutar consultas SQL de Select me funciona perfectamente. Pero cuando intento ejecutar una consulta de Insert (para insertar un registro) usando en Visual C# .Net:

OdbcCommand.ExecuteNonQuery

Con la consulta SQL siguiente:

insert into factura (codigocliente, observacion) values (2,'Prueba');

Me aparece el siguiente error y no me inserta el registro:

---------------------------
Error Facturación y Contabilidad
---------------------------
ERROR [22P02] ERROR: el valor de array debe comenzar con «{» o información de dimensión;
Error while executing the query
---------------------------
Aceptar
---------------------------



El código Visual C# que uso para insertar un registro en una BD PostgreSQL mediante ODBC es:

Código:

  OdbcCommand comandoSQL;
  string consultaSQL;
  try
  {
    consultaSQL = "insert into factura (codigocliente, observacion) values (2,'Prueba');
    comandoSQL = new OdbcCommand(consultaSQL, conexionBDODBC);
    comandoSQL.ExecuteNonQuery();
    MessageBox.Show("Registro insertado en PostgreSQL correctamente con ODBC y C Sharp");
  }
  catch (Exception ex)
  {
     MessageBox.Show(ex.Message);
   }           


¿Qué estoy haciendo mal?
MensajePublicado:
Sab Jul 07, 2012 10:03 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: PostgreSQL C# ERROR 22P02: el valor de array debe comenz Responder citando



Anuncios



varios escribió:
Estoy usando las indicaciones de este post de vuestro foro:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=1528

Para ejecutar consultas SQL de Select me funciona perfectamente. Pero cuando intento ejecutar una consulta de Insert (para insertar un registro) usando en Visual C# .Net:

OdbcCommand.ExecuteNonQuery

Con la consulta SQL siguiente:

insert into factura (codigocliente, observacion) values (2,'Prueba');

Me aparece el siguiente error y no me inserta el registro:

---------------------------
Error Facturación y Contabilidad
---------------------------
ERROR [22P02] ERROR: el valor de array debe comenzar con «{» o información de dimensión;
Error while executing the query
---------------------------
Aceptar
---------------------------



El código Visual C# que uso para insertar un registro en una BD PostgreSQL mediante ODBC es:

Código:

  OdbcCommand comandoSQL;
  string consultaSQL;
  try
  {
    consultaSQL = "insert into factura (codigocliente, observacion) values (2,'Prueba');
    comandoSQL = new OdbcCommand(consultaSQL, conexionBDODBC);
    comandoSQL.ExecuteNonQuery();
    MessageBox.Show("Registro insertado en PostgreSQL correctamente con ODBC y C Sharp");
  }
  catch (Exception ex)
  {
     MessageBox.Show(ex.Message);
   }           


¿Qué estoy haciendo mal?


¿Tienes la consulta SQL de creación de la tabla "factura"? en PostgreSQL. Si no la tienes al menos consulta el tipo de dato del campo "observacion" y nos lo posteas.
MensajePublicado:
Sab Jul 07, 2012 10:10 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Re: PostgreSQL C# ERROR 22P02: el valor de array debe comenz Responder citando



Anuncios



alonsojpd escribió:
¿Tienes la consulta SQL de creación de la tabla "factura"? en PostgreSQL. Si no la tienes al menos consulta el tipo de dato del campo "observacion" y nos lo posteas.


En pgAdmin III en el tipo de dato para la columna "observacion" de la tabla "factura" pone "text[]" ¿esto te vale?
MensajePublicado:
Sab Jul 07, 2012 10:12 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: PostgreSQL C# ERROR 22P02: el valor de array debe comenz Responder citando



Anuncios



varios escribió:
En pgAdmin III en el tipo de dato para la columna "observacion" de la tabla "factura" pone "text[]" ¿esto te vale?


El problema parece ser que está en el tipo de dato que usas para "observacion", haz copia de seguridad de los datos de PostgreSQL (si tienes datos válidos y está en producción) y cambia el tipo de dato de la columna "obserbacion" a "text", puedes hacerlo ejecutando la siguiente consulta SQL en pgAdmin:

Código:

ALTER TABLE factura
ALTER COLUMN obserbacion TYPE text;


El problema está en que en el tipo de dato, al crear la tabla "factura", seleccionaste "text[]" en vez de "text".
MensajePublicado:
Sab Jul 07, 2012 10:15 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] PostgreSQL C# ERROR 22P02: el valor de array debe Responder citando



Anuncios



alonsojpd escribió:
El problema parece ser que está en el tipo de dato que usas para "observacion", haz copia de seguridad de los datos de PostgreSQL (si tienes datos válidos y está en producción) y cambia el tipo de dato de la columna "obserbacion" a "text", puedes hacerlo ejecutando la siguiente consulta SQL en pgAdmin:

Código:

ALTER TABLE factura
ALTER COLUMN obserbacion TYPE text;


El problema está en que en el tipo de dato, al crear la tabla "factura", seleccionaste "text[]" en vez de "text".


Ok, ya me funciona, lo he solucionado eliminando la columna "observacion" y volviéndola a crear con el tipo "text", efectivamente este era el problema. He eliminado la columna, obviamente, porque estoy en fase de pruebas y no tengo datos válidos.

Muchas gracias.
MensajePublicado:
Sab Jul 07, 2012 10:17 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+