| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Lun 12 Feb, 2007 3:32 am Asunto: ejecutar sentencia del insertSQL |
|
|
Hola, alguien puede decirme como hago para ejecutar una sentencia insertSQL de un ibdataset, pero solo la del insert. Igual solo tengo que ejecutar sentencias insert y no updates ni select ni nada, pero sin embargo cuando trato de ejecutar el ibdataset me dice que las demas sentencias no deben estar vacias y la verdad no se como hacer con esto.
Ya he mirado bastantes post del foro pero no he dado con algo especifico.
Gracias _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Lun 12 Feb, 2007 4:38 am Asunto: |
|
|
El componente TIBDataSet está diseñado para trabajar con Select, Insert, Update y Delete de manera conjunta pero mediante los métodos Append, Delete y Post.
Si solo necesitas ejecutar una instrucción como Insert, Update, Delete usa el componente TIBQuery.
Código.
| Código: | IBQuery1->Close;
IBQuery1->SQL->Clear;
IBQuery1->SQL->Add("Delete from Usuarios where Nombre = 'Carlos'");
IBQuery1->ExecSQL; |
Ahora, si deseas usar el IBDataSet para realizar la inserción es de esta manera.
| Código: | IBDataSet1->Open(); //Abrir el dataset
IBDataSet1->Append(); //Agregar registro
IBDataSet1->FieldByName("Nombre_de_campo")->Value = "Algo"; //Asignar valores
IBDataSet1->Post(); // Guardar el registro
IBDataSet1->Close(); //Cerrar el dataset
|
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Mar 13 Feb, 2007 2:25 am Asunto: |
|
|
Hola Buildero.... Muchisimas gracias por tu colaboracion...
Mira me he decidido por usar el componente ibdadataset, pero cuando pongo
IBDataSet1->Open();
y ejecuto la aplicacion (y hago una prueba paso a paso), cuando se ejecuta la linea del open() me aparece el error que dice
cannot perform this operation on a dataset closed, y pues la verdad no encuentro en que parte modicar algo para evitar dicho mensaje.
Nuevamente, mil gracias y disculpen las moletias. _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 13 Feb, 2007 3:08 am Asunto: |
|
|
No pues asi es dificil, ese mensaje se presenta cuando se intenta realizar alguna acción con el dataset y este no esta abierto.
Revisa que no tengas algún otro código o proceso que se relaciones con tu IBDataSet. Si puedes agregar algo de código tal vez podamos dar mas rápido con el problema.
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 13 Feb, 2007 8:12 am Asunto: |
|
|
Hay otra posibilidad: Que la tabla sobre la que quieres hacer el insert esté cerrada. Revisa ese lado también. Con tablas Paradox, puedes ejecutar sentencias SQL sin que las tablas estén abiertas y me costó darme cuenta que con Firebird sí tienen que estarlo. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|