Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2011
Avatar de pmtzg
pmtzg pmtzg is offline
Miembro
 
Registrado: jul 2007
Posts: 179
Poder: 17
pmtzg Va por buen camino
insertar en base de datos

hola amigos
preguntando a los expertos nuevamente !!!

usando un DataModule Llamado DMClientes con FibDataset
y otro Datamodule Llamado AccesoDatos donde esta FibData (Bd)

al grabar en una base de datos lo hago de la siguiente manera:

Código Delphi [-]
DMClientes.DTSMovClientes.Append;
   DMClientes.DTSMovClientes.QInsert.Params[0].Value:= enumero.Text;
   DMClientes.DTSMovClientes.QInsert.Params[1].Value:= 'A';
   DMClientes.DTSMovClientes.QInsert.Params[2].Value:= enombre.Text;
   DMClientes.DTSMovClientes.QInsert.Params[3].Value:= erfc.Text;
   DMClientes.DTSMovClientes.QInsert.Params[4].Value:= edir.Text;
   DMClientes.DTSMovClientes.QInsert.Params[5].Value:= epob.Text;
   DMClientes.DTSMovClientes.QInsert.Params[6].Value:= ecp.Text;
   DMClientes.DTSMovClientes.QInsert.Params[7].Value:= etel.Text;
   DMClientes.DTSMovClientes.QInsert.Params[8].Value:= eatencion.Text;
   DMClientes.DTSMovClientes.QInsert.Params[9].Value:= eaten_cobranza.Text;
   DMClientes.DTSMovClientes.QInsert.Params[10].Value:= eclasific.Text;
   DMClientes.DTSMovClientes.QInsert.Params[11].Value:= edias_cred.Text;
   DMClientes.DTSMovClientes.QInsert.Params[12].Value:= mem_obser.Text;
   DMClientes.DTSMovClientes.QInsert.Params[13].Value:= ecol.Text;
   DMClientes.DTSMovClientes.QInsert.Params[14].Value:= efax.Text;
   DMClientes.DTSMovClientes.QInsert.Params[15].Value:= email.Text;
   DMClientes.DTSMovClientes.QInsert.Params[16].Value:= ecurp.Text;
   DMClientes.DTSMovClientes.QInsert.Params[17].Value:= eclv_ciec.Text;
   DMClientes.DTSMovClientes.QInsert.Params[18].Value:= eclv_idse.Text;
   DMClientes.DTSMovClientes.QInsert.Params[19].Value:= eclv_rec.Text;
   DMClientes.DTSMovClientes.QInsert.ExecQuery;
   AccesoDatos.FibTr.Commit;
obiamente ya en el FIBDataset ya tengo los parametros de insert

ahora estoy pensando hacerlo con un PROCEDIMIENTO ALMACENADO
pero no lo he hecho !!
Como sería ? ... me iluminarian como hacerlo ? ? ?? ? ? ?

y que sera mas rapido ?, si lo hago masivo; por decir cada 1000 registros
grabar !!!

sera mas rapido FIBDataset o el Procedimiento Almacenado ????

espero sus comentarios y su apoyo
mil gracias por su tiempo
Responder Con Cita
  #2  
Antiguo 23-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sería necesario que explicaras el "contexto" de lo que quieres hacer, ahí haces un insert y su correspondiente commit, pero hablas de hacerlo masivo y cada 1000 registros... pero el qué.
Pues eso, que expliques claramente todo lo que quieres hacer, para poder aconsejar correctamente
Responder Con Cita
  #3  
Antiguo 23-09-2011
Avatar de pmtzg
pmtzg pmtzg is offline
Miembro
 
Registrado: jul 2007
Posts: 179
Poder: 17
pmtzg Va por buen camino
gracias casimiro
olvidemos el insert masivo es un proyecto a futuro y me adelante ...

por otra parte la forma como inserto registros a mi base de datos Fb es con FIBDataset y me funciona muy bien; bien, ahora me gustaria hacerlo
con PROCEDIMIENTO ALMACENADO

tú me podrias ayudar como seria o como lo haria con mi ejemplo de arriaba ??
y que componentes usar !!

te agradezco mucho tus comentarios .. un saludo !!
Responder Con Cita
  #4  
Antiguo 23-09-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Seguro que los FiB tienen un componente específico para ejecutar procedimientos almacenados (similar al TIBStoredProc), con lo que
creas el procedimiento SQL en tu base de datos y usas ese componente.

Código SQL [-]
CREATE OR ALTER PROCEDURE PRINSERTARMOVCLIENTES(PARNUMERO INTEGER, ....)
AS
BEGIN
  -- El cuerpo del procedimiento debe ser la sentencia SQL que tienes en tu query
END

La llamada en Delphi es básicamente igual a la que tienes:

Código Delphi [-]
DMClientes.spInseratMovClientes.Params[0].Value:= enumero.Text;
DMClientes.spInseratMovClientes.Params[1].Value:= 'A';
...
AccesoDatos.FibTr.Commit;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
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
Insertar imagenes a una base de datos .db emula Tablas planas 4 14-02-2011 03:14:22
Insertar Datos a un campo de la base de datos desde un DBEdit saltamirano Varios 11 12-12-2007 17:29:35
Problema al insertar un registro en la base de datos mcalmanovici Conexión con bases de datos 2 30-08-2007 04:48:59
Insertar base de datos en acces con contraseña kakesoft Conexión con bases de datos 3 03-12-2005 00:35:17
Insertar archivo en base de datos!!!!! DB-ADO Conexión con bases de datos 2 01-04-2005 23:59:15


La franja horaria es GMT +2. Ahora son las 19:14:39.


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