Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 30-03-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 23
RONPABLO Va por buen camino
Cita:
Empezado por Kenobi
ahora bien cual es el problema (ademas del codigo en la aplicacion) de usar sql.add como dijo RonPablo(mis respetos amigo) digo yo... acaso no funciona siempre bien..? pregunto porque yo lo uso bastante y si estoy cometiendo un error
Como tal así funciona, la cuestión es cuando buscamos escalabilidad, solo por ejemplo que en algún momento tienes que cambiar de componente de conexión a la bd, con el sql.add, tendrás que ir unidad por unidad buscando donde esta el código sql, mientras que si tienes dentro de un modulo (o dos o tres, pero no muchos) todos los xxQuerys (con su correspondiente xxUpdateSQL) o xxDataSets, te quedara mas fácil modificar estos.

un ejemplo:


Tabla Permisos (id, nombre); tabla Perfiles (id, nombre)

para estas dos tablas yo creo en Delphi dos xxQuery asi que normalmente los llamaría xxQPermisos y xxQPerfiles y los asociaria con de a xxUpdateSQL (xxUSPermisos, xxUSPerfiles), ya en el inspector de objetos en la propiedad
unidirectional la igualaría a false y la propiedad sql pondría algo como esto

Código SQL [-]
//en el xxqPermisos
select * from TPERMISOS where id = :id

//en el xxqPerfiles
select * from TPERFILES where id = :id

con esto solo tendría que ir al xxUpdateSQL darle doble clic, pedirle los nombres de la tabla, donde me mostraría dos cuadros con los mismos campos, uno se llama Key FIelds y el otro se llama UpdateFiels, en Key Fields seleccionaría el campo id y en update Fields todos los campos, luego le diria que me genere el sql y el me daría estos resultados:

Código SQL [-]
//Modify
update TPERMISOS
set
  CODIGO = :CODIGO,
  NOMBRE = :NOMBRE
where
  CODIGO = :OLD_CODIGO


//Insert
insert into TPERMISOS
  (CODIGO, NOMBRE)
values
  (:CODIGO, :NOMBRE)

//Delete
delete from TPERMISOS
where
  CODIGO = :OLD_CODIGO


//refresh
Select 
  CODIGO,
  NOMBRE
from TPERMISOS 
where
  CODIGO = :CODIGO

con esto que me ahorro??, simple en cada unidad tener que estar poniendo

Código Delphi [-]
query.sql.clear;
query.sql.add('el select');
query.open;

query.sql.clear;
query.sql.add('el delete y su parametro');
query.paramByname('id').asInteger= varId;

query.sql.clear;
query.sql.add('el update y su parametro');
query.sql.ParamByName('id').asInteger;


y solo usaría comandos como:

Código Delphi [-]
xxQPermisos.opent;
xxQPermisos.Edit;
xxQPermisos.Insert;
xxQPermisos.Delete;
xxQPermisos.Refresh;
xxQPermisos.post;
xxQPermisos.applyUpdates;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
eliminar scrollbar en DBGRID cocke C++ Builder 2 25-11-2006 05:01:51
deshabilitar eliminar desde un dbgrid morfeo21 Varios 2 13-10-2005 06:53:47
eliminar elemento del dbgrid Torreblanca Varios 5 10-10-2005 14:36:22
eliminar opcion de eliminar en un dbgrid morfeo21 Varios 3 14-07-2005 17:05:32
Eliminar columna(DbGrid) en tiempo de ejecucion bestiux Conexión con bases de datos 5 08-06-2004 18:06:44


La franja horaria es GMT +2. Ahora son las 23:29:14.


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