 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Luisma Invitado
|
Publicado: Vie 11 Mar, 2005 3:03 pm Asunto: Modificar un registro de una tabla |
|
|
| Vereis mi problema es el siguiente quiero hacer un botón modificar que me permita cambiar los campos del registro en el que estoy situado actualmente, no se si utilizar un IBquery o bien hacerlo con el método Post(), alguien me puede decir que me aconseja de como hacerlo |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 11 Mar, 2005 6:02 pm Asunto: |
|
|
Hola... yo te recomiendo qiue lo hagas con instrucciones SQL:
| Código: |
update Tabla set campo1=valor1,campo2=valor2 where campoX = condicion
|
_________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Luisma Invitado
|
Publicado: Vie 11 Mar, 2005 7:24 pm Asunto: |
|
|
Estoy intentando realizar la modificacion pero en este código me salta una excepción en tiempo de ejecución
| Código: |
Table1->Active=false;
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("UPDATE Sala SET Nombre=:Name, Sitio=:Place");
Query2->SQL->Add("VALUES (:Name, :Place) ");
Query2->Params->Items[0]->AsString = Edit1->Text;
Query2->Params->Items[1]->AsString = Edit2->Text;
Query2->ExecSQL();
Table1->Active=true;
|
En tiempo de ejecución se me para justo en la línea de
Table1->Active=true y sale la excepcion correspondiente como de un error en la sentencia SQL, amigos, ¿Sabeis a que es debido?, gracias por vuestra ayuda es que estoy un poco perdido. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Sab 12 Mar, 2005 7:07 pm Asunto: |
|
|
| Código: |
qry->Close();
qry->SQL->Add("UPDATE tutable SET tucampo1='"+txtText1->Text+"',"
qry->SQL->Add(" tucampo2'"+txtText2->Text+"'");
|
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Luisma Invitado
|
Publicado: Dom 13 Mar, 2005 4:33 pm Asunto: |
|
|
Perdona Gabriel pero con tu código me sigue dando un error en tiempo de ejecución así que ya estoy un poco desesperado porque no se que ocurre, me sale un error general de SQL y me sale que el valor de lo que quiero insertar es un campo desconocido, disculpad por tanta pregunta pero estoy desesperado |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 14 Mar, 2005 5:31 am Asunto: |
|
|
"NO ES LO MISMO, PERO ES IGUAL"
| Código: | update Tabla set campo1=:valor1,campo2=:valor2 where campoX = condicion |
En algunas ocaciones cuando se realiza la modificacion, directa del registro en la tabla (me imagino que es lo que quieres), debes usar el prefijo ":" (dos puntos) con el mismo nombre del campo al cual vas a remplazar,
ejemplo :
una Tabla de Productos con sus Campos de Actualizacion.
| Cita: | update PRODUCTOS
set
PR_CANTIDAD_EXISTENTE = :PR_CANTIDAD_EXISTENTE,
PR_CANTIDAD_MINIMA = :PR_CANTIDAD_MINIMA,
PR_CARGAR_IVA = :PR_CARGAR_IVA,
PR_CODIGO_BARRAS = :PR_CODIGO_BARRAS,
PR_DESCRIPCION = :PR_DESCRIPCION,
PR_ID = :PR_ID,
PR_ID_CLASIFICACION = :PR_ID_CLASIFICACION,
PR_ID_EMPRESA = :PR_ID_EMPRESA,
PR_ID_UBICACION = :PR_ID_UBICACION,
PR_PEDIR_NS = :PR_PEDIR_NS,
PR_PRECIO_VENTA = :PR_PRECIO_VENTA,
PR_PRESENTACION = :PR_PRESENTACION
where
PR_ID = :OLD_PR_ID |
si usas algun parametro debes referirte a el, de la manera, menos complicada
tal y como te indican los compañeros anteriores. debe quedar de la siguiente manera
| Código: |
Table1->Active=false;
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("UPDATE Sala SET Nombre=:Name, Sitio=:Place");
Query2->SQL->Add("VALUES (:Name, :Place) ");
Query2->ParamsByName("Name")->Value = Edit1->Text;
Query2->ParamsByName("Place")->Value = Edit2->Text;
Query2->Open(); // vuelves abrir la consulta
Table1->Active=true; |
Saludos... _________________
 |
|
| Volver arriba |
|
 |
Luisma Invitado
|
Publicado: Lun 14 Mar, 2005 11:29 am Asunto: |
|
|
Puse el código de Cesar y vaya no se si estoy gafado o que pasa pero me sigue saliendo la siguiente excepción:
| Código: |
exception class EDBEngineError with message " General SQL error. Token unknow -line 2 char -1 VALUES". Process stopped.
|
No se si sabreis lo que puede ser pero llevo bastante con ello y no pensaba que fuese tan complicado el poder modificar un registro |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 14 Mar, 2005 1:16 pm Asunto: |
|
|
Como ultimo consejo, si tienes tantos problemas, por que no mejor usas un IBDataSet, y te evitas los que puedas encontrar, este componente de la paleta de Interbase, te pude solucionar las cosas..
digo, a parte que no indicas que estas haciendo, ni dices, si el componente tienes lo campos, entonces, usa un IBDataSet
saludos _________________
 |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|