Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2006
nachito_tuc nachito_tuc is offline
Miembro
 
Registrado: jul 2006
Ubicación: Tucuman
Posts: 17
Poder: 0
nachito_tuc Va por buen camino
Question Modo de insertar nuevos registros y HOLA

Hola. Soy nuevo en este foro y tambien en Delphi. Vengo de programar en Visual Basic y la verdad me esta dando un poco de dolor de cabeza el tema de las bases de datos.

Mi duda es la siguiente: hay en Delphi otro modo de insertar registros en una base de datos que no sea a traves del Insert de SQL?
(Como los recordset de VB que tienen un metodo AddNew y luego se reemplaza cada campo con el dato y se hace un rs.update).

y para actualizar como hago con campos edit comunes? traté de asignarle a cada campo (
Código:
query1.fieldbyname('campo').AsString=edit1.text
)
pero me dice q son de solo lectura, probe poner antes query1.edit o cosas asi pero no pude hacerlo funcionar alguna sugerencia?

Saludos y muchas gracias.

Nacho
Responder Con Cita
  #2  
Antiguo 27-07-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En Delphi tienes Append y Edit, pero primero hace falta que la consulta sea actualizable, RequestLive = True.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 28-07-2006
mierda mierda is offline
Miembro
 
Registrado: may 2006
Posts: 129
Poder: 18
mierda Va por buen camino
prueba con esto ...

Un ejemplo de como lo haces tu en vb ... pero en delphi:

Código Delphi [-]
nombredatamodule.nombretabla.Active := true;
nombredatamodule.nombretabla.Append;
nombredatamodule.nombretabla.fieldbyname('idreceptor').AsString := nombre_usuario;
nombredatamodule.nombretabla.fieldbyname('idremitente').AsString := copy(texto_rec,0,posicion-1);
nombredatamodule.nombretabla.fieldbyname('texto').AsString := copy(texto_rec,posicion+2,length(texto_rec));
nombredatamodule.nombretabla.fieldbyname('fechahora').AsString := DateTimeToStr(now);
nombredatamodule.nombretabla.Post;
nombredatamodule.nombretabla.Active := false;

Un saludo.
Responder Con Cita
  #4  
Antiguo 28-07-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Solo por complementar el ejemplo que se encuentra posteado por mi camarada "shit" . te recomiendo que utilices el comando commit en lugar del post. esto debido a que en multiples ocasiones tuve problemas de actualización de datos debido a la utilización de POST. en resumen, el código quedaría algo como esto:

Código Delphi [-]
with nombredatamodule.nombretabla do
begin
  Active := true;
  Append;
  fieldbyname('idreceptor').AsString := nombre_usuario;
  fieldbyname('idremitente').AsString := copy(texto_rec,0,posicion-1);
  fieldbyname('texto').AsString := copy(texto_rec,posicion+2,length(texto_rec));
  fieldbyname('fechahora').AsString := DateTimeToStr(now);
  Commit;
  Active := false;
end;

Te coloco el código de esta forma porque supongo que te es más fácil comprenderlo debido a que en VB se usan sentencias similares.

Suerte.
Responder Con Cita
  #5  
Antiguo 31-07-2006
Avatar de alastor
alastor alastor is offline
Miembro
 
Registrado: abr 2006
Posts: 59
Poder: 19
alastor Va por buen camino
Otra manera

Saludos. Mira, yo encuentro mas facil hacerlo asi:
Código Delphi [-]
Nombre_Tabla.insert;
Nombre_Tabla_Nombre_Campo.asString:=Edit1.text;//El nombre del campo va seguido del nombre de la tabla, y lo que sigue despues le dira a delphi como que tipo de dato tu lo quieres usar
Nombre_Tabla_Nombre_Campo.asInteger:=strtoint(Edit2.text);
Nombre_Tabla.post;
Espero que te sea mas facil a la hora de trabajar. Saludos.
Responder Con Cita
  #6  
Antiguo 01-08-2006
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Cita:
Empezado por nachito_tuc
Hola. Soy nuevo en este foro y tambien en Delphi. Vengo de programar en Visual Basic y la verdad me esta dando un poco de dolor de cabeza el tema de las bases de datos.
Delphi es muchismo más simple que VB, es posible que por ello, por simpleza te resulte más dificil. Es como el ladrón que va directamente a la caja fuerte sin percatarse que la pasta esta sobre la mesa medio tapada por un papel.

Cita:
Empezado por nachito_tuc
Mi duda es la siguiente: hay en Delphi otro modo de insertar registros en una base de datos que no sea a traves del Insert de SQL?
(Como los recordset de VB que tienen un metodo AddNew y luego se reemplaza cada campo con el dato y se hace un rs.update).
Nacho
Es muy posible que no necesites escribir una sola línea de código para realizar cualquier tipo de actualización (insert, update, delete). Los componentes de acceso a datos de delphi te lo resuelven ellos solitos, si el TQuery (en este caso) esta conectado a campos DataWare (TDBEDit, TDBxxx), si usas componentes no DataWare, entonces la asignación la tienes que hacer a manita como en VB.

Todo Componente que desciende de TDataSet (TQuery, TTable), implementan metodos para la inserción, modificación, borrado (TuQuery.Append/Insert, TuQuery.delete, TuQuery.edit).

Pones un TQuery en tu formulario, la propiedad "RequestLive = True" y en la propiedad "SQL", una sentencia SQL de lectura de datos:

Ejemplo:
Código Delphi [-]
  QMto.RequestLive := True;    // Habilita al componente TQuery realizar Insert, Update, Delete.
  QMto.sql.Add('SELECT * FROM HABI_PROVEEDORES');
  QMto.Open;

espero te sirva, un saludo
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como insertar registros con sql? newbery Firebird e Interbase 1 10-01-2006 14:32:30
Problema al insertar registros en una BD epalacios SQL 4 07-06-2005 19:11:16
Insertar registros en MySQL TONIAM MySQL 0 24-05-2005 15:47:49
Actualizar existencia de productos e insertar nuevos si no se encuentran ctronx MySQL 5 19-10-2004 16:27:03
Problemas al insertar registros con ADO sanluisme Conexión con bases de datos 0 04-03-2004 10:34:41


La franja horaria es GMT +2. Ahora son las 21:35:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi