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 

Modificar un registro de una tabla

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Modificar un registro de una tabla Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Perdona Gabriel pero con tu código me sigue dando un error en tiempo de ejecución Crying or Very sad 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
Mensaje    Asunto: Responder citando

"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...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email 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.