Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

'SQL error code = -206 Column unknown' Con Firebird...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: 'SQL error code = -206 Column unknown' Con Firebird... Responder citando

Hola a todos... tengo el siguiente problema con una aplicacion que conecta a una BD Firebird... me lanza la siguiente excepcion:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project SiRiA.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -206
Column unknown'. Process stopped. Use Step or Run to continue.
---------------------------


Es Decir dice que no reconoce alguna de las columnas... la instruccion SQL es la siguiente:



El diagrama de la BD es el siguiente:



Y el paso de parametros es simplemente el siguiente:

Código:
 InsPC->ParamByName("mac")->AsString = GetMac(List);
 InsPC->ParamByName("nom")->AsString = PCInfo->Computername;
 InsPC->ParamByName("ip")->AsString = GetIp();
 try
  {
   InsPc->ExecSQL();
  }
 catch(...)
 {

 }



Por lo que entiendo el error es pq no reconoce uno de los campos de la tabla... pero como pueden ver esta perfectamente ahi... llevo mas de 1 dia tratando de entender que puede estar mal.. pero la verdad no encuentro el error...

PD: El campo Id_Pc de la tabla PC es autonumerico... por lo que no lo incluyo en la insercion, aunque para probar en cierto momento le di valores y daba el mismo error... la bd esta conectada, ya que al hacer un Select * me muestra todos los campos en una grilla... es decir... no entiendo que esta mal...

Espero que alguno me pueda dar alguna idea... se agradecera.

Saludos!!! y gracias de antemano....

_ViKtOr Cool
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Hola de nuevo... ahora si hacer nada el error cambio al siguiente:

Cita:

---------------------------
Debugger Exception Notification
---------------------------
Project SiRiA.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -206
Column unknown
IP_PC
At line 1, column 17'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


Y es imposible que el campo IP_PC no este... lo estoy viendo en el diseño de la tabla y en la grilla... :S

Alguien tiene alguna idea de que puede ser esto ???

Saludos!!!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

no se pueden establecer valores, a los campos que son pasados como parametros, dentro de una inserccion, llamese update, modify, edit, delete, para poder hacerlo.., yo tuve el mismo problema y lo unico que pude cambiar o modificar son los parametros que puedes poner dentro de la sentencia SelectSQL, ahi, si puedes poner los parametros, y modificarles el valor, pero en las anteriores, no se puede..


ya que se asume, que los campos, con dos puntos al final, corresponden, a el nuevo valor que debe tener, pero no se puden modificar dentro del tiempo de diseño..


saludos..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Graciasp por tu respuesta... pero a mi me ha funcionado asi antes... solo que ahora hice las relaciones de las tablas e indique cual es la llave principal... y si le he dado parametros en tiempo de ejecucion...

No entiendo cual es la solucion que me das... te agradeceria si me dijeras como puedo solucionar esto.. .si necesito hacerlo en tiempo de ejecucion...

El problema es que yo necesito cambiar esos parametros... y lo he hecho sin problemas con anterioridad... ¿que puede ser?

Saludos y gracias por tu atencion...

PD: Tal vez no me ha quedado clara tu explicacion al problema...
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Acabo de notar que si cambio el orden

Código:
"Insert Into PC(IP_PC, MAC_PC, NOM_PC) Values(...... "


por ejemplo por:

Código:
"Insert Into PC( MAC_PC, IP_PC, NOM_PC) Values(...... "


Ya no me dice que es IP_PC el campo desconocido... sino que MAC_PC ... :S


La verdad no entiendo... Gracias por cualquier respuesta...

Saludos!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Holas... sigo con lo mismo... y mas raro aun lo he hecho con un TIBTable y me funciona perfecto.... :S

Código:
   IBTable1->Close();
   IBTable1->Open();
   IBTable1->Append();
   IBTable1->FieldByName("Id_Pc")->AsInteger = 1;
   IBTable1->FieldByName("Mac_Pc")->AsString = sMac;
   IBTable1->FieldByName("Ip_Pc")->AsString = sIp;
   IBTable1->FieldByName("Nom_Pc")->AsString = sNom;
   IBTable1->Post();


Pero la idea es hacerlo con SQL ....

Alguna idea. ?

Saludos... y disculpen la insistencia... pero la verdad no entiendo el porque de esto...
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Bueno... por le momento he logrado solucionarlo usando un TIBTable... no es lo optimo pero puedo seguir avanzando en lo demas mientras...

Ahora cuando quiero hacer un delete con SQL ... tengo el mismo problema... y sera bastante poco provechoso abrir la tabla completa y recorrer registro a registro buscando el que quiero eliminar... lo hago de esta manera:

Código:

  sqlBorra->SQL->Clear();
  sqlBorra->SQL->Add("Delete From Pc Where Mac_Pc =:mac");
  sqlBorra->ParamByName("mac")->AsString = sMac;
  sqlBorra->Prepare();
  sqlBorra->ExecSQL();


Y me aparece el mismo error....
Cita:

---------------------------
Debugger Exception Notification
---------------------------
Project SiRiA.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -206
Column unknown
MAC_PC
At line 1, column 22'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


Esto es obviamente necesario con parametros... de lo contrario no entiendo que pueda estar mal...

Alguna idea ??

Gracias ....

Saludos!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Solucionado Embarassed y era realmente una tontera...

En la bd defini los campos de la siguiente manera

Id_Pc
Mac_Pc
...

Etc...

En el codigo SQL los trataba de la misma manera... pero al parecer firebird necesita que los campos sea puestos en mayusculas... porque al redefinir los campos... a ID_PC o MAC_PC ... el problema termino...

Laughing

Gracias...

Saludos!!!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Jajaja que curioso Viktor, la verdad es que siempre los he usado en mayusculas, ví el post antes, pero no contesté porque no suelo usar esa forma de pasarle los parametros, prefiero, formar un AnsiString como consulta y luego usar algun componente tipo Query para ejecutar la consulta contra el servidor.

Me alegro de que lo hayas solucionado... ciao.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.