| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mar 08 Feb, 2005 8:19 pm Asunto: 'SQL error code = -206 Column unknown' Con Firebird... |
|
|
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  _________________ "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 |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mar 08 Feb, 2005 8:28 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 08 Feb, 2005 8:46 pm Asunto: |
|
|
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.. _________________
 |
|
| Volver arriba |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mar 08 Feb, 2005 8:54 pm Asunto: |
|
|
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 |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mar 08 Feb, 2005 9:28 pm Asunto: |
|
|
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 |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mar 08 Feb, 2005 10:44 pm Asunto: |
|
|
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 |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mie 09 Feb, 2005 7:41 pm Asunto: |
|
|
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 |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Mie 09 Feb, 2005 11:03 pm Asunto: |
|
|
Solucionado 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...
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 |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Jue 10 Feb, 2005 10:09 am Asunto: |
|
|
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 |
|
 |
|