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 26-02-2009
djanp djanp is offline
Miembro
 
Registrado: nov 2007
Posts: 17
Poder: 0
djanp Va por buen camino
dudas sobre uso de query, clientdataset en ADO

hola de nuevo a todos
llevo pegandome con esto ni se sabe...
intento hacer un programa de facturacion en el que ya tengo la BBDD hecha y llena
segun me dijo bluesteel hay algun ejemplo de facturacion en el ftp, pero lo unico que encontre fue ejemplos de ADO
y use uno de ellos para cargar tablas en formularios, como muestro a continuacion
// Conectar
ADOConnectionAC.Open;

// Preparar la Query
ADOQueryAC.Close; // por si acaso
ADOQueryAC.SQL.Clear;

//Cargar los datos de la tabla AC
ADOQueryAC.SQL.Add('Select * from [Cabecera Facturacion Compras]where Serie=''AC''');
// Activar la consulta
ADOQueryAC.Open;
// Enganchar el TClientDataSet (se utiliza el Provider)
DataSetProviderAC.DataSet := ADOQueryAC;
// Activar el DataSet
ClientDataSetAC.Open;
// Cerrar la consulta
ADOQueryAC.Close;


esto funciona
cargo los datos en el clientedatasetAC-->datasource-->dbedit o dbgrid
pero el dbedit no me deja modificarlo en tiempo de ejecucion, por lo que no puedo cambiar valores cosa que no entiendo
ademas uso un DBlookupcombobox para cambiar el cliente en el albaran y una vez elegido modifico automaticamente los dbedit relacionados con el cliente(direccion , poblacion,etc...pob.EditText:= (ClientDataSetprov.FieldByName('poblacion').AsString);) lo cual nunca llegara a guardarse en la BBDD, solo en memoria, dado q si el query esta cerrado, no sabe como guardase creo
una de mis preguntas es
- ¿¿¿como hacer que se guarden en la BBDD cuando se modifique o yo crea conveniente hacerlo???
- ¿¿es buena idea el query para estas cosas??
- ¿hay ejemplos mas especificos para lo que hago??
- al abrir el form quiero q se conecte a la BBDD ¿uso form.onactivate, onshow o oncreate???
- y al cerrarlo desconectar el adoconection ¿supungo en onclose, no???

muchas dudas que hacden que no avance nada, a ver si alguien puede echarme una mano, gracias a todso
Responder Con Cita
  #2  
Antiguo 26-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, tratare de responder a tus preguntas

Cita:
Empezado por djanp Ver Mensaje
- ¿¿¿como hacer que se guarden en la BBDD cuando se modifique o yo crea conveniente hacerlo???
Cuando utilizas el ClientDataSet todo se guarda en memoria, por lo que debes utilizar la función ApplyUpdates paar que se guarde fisicamente "ClientDataSet1.ApplyUpdates(-1)" , para ello no deberías hacerle un Close a tu DataSetcomo esta ahora "ADOQueryAC.Close;
".

Cita:
Empezado por djanp Ver Mensaje
- ¿¿es buena idea el query para estas cosas??
Yo creo que no deberías tener problemas al usar el Query.

Cita:
Empezado por djanp Ver Mensaje
- ¿hay ejemplos mas especificos para lo que hago??
Si buscas en el foro seguro que encuentras.

Cita:
Empezado por djanp Ver Mensaje
- al abrir el form quiero q se conecte a la BBDD ¿uso form.onactivate, onshow o oncreate???
El OnActivate yo creo que no, porque se da cada vez que se activa el formulario y eso puede ocurrir por varias razones. Puedes utilizar el OnShow o el OnCreate de tu formulario principal.

Cita:
Empezado por djanp Ver Mensaje
- y al cerrarlo desconectar el adoconection ¿supungo en onclose, no???
Si.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 26-02-2009
djanp djanp is offline
Miembro
 
Registrado: nov 2007
Posts: 17
Poder: 0
djanp Va por buen camino
gracias por la rapidez
en cuanto a lo de ClientDataSet1.ApplyUpdates(-1)"
lo use tambien, pero como tu dices me debio dar error por tener cerrado el query
pero es que ese query lo reutilizo para cargar datos en otros 3 datasetprovider, por lo que la habro y cierro 3 veces, supongo que si simplemente antes de hacer el ClientDataSet1.ApplyUpdates(-1)" hago ADOQueryAC.Open funcionaria??? o tendria que hacer otra vez ADOQueryAC.SQL.Add('Select * from [Cabecera Facturacion Compras]where Serie=''AC'''); antes??? dado que el sql que guarda seguramente no tenga nada que ver con el de este clientdataset

y una cosa mas
¿¿¿¿se puede asignar campos al DBedit, que pueden que esten vacios?? (son string) es que a mi me falla cuando les hago esto
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
query con clientdataset? judit25 Conexión con bases de datos 1 18-05-2006 01:27:45
Dudas sobre Firebird? juliopag1 Firebird e Interbase 2 12-09-2005 16:15:40
consulta sobre XML con clientdataset edfz Conexión con bases de datos 3 02-03-2004 19:22:46
Dudas con quickReport y un Query Wanderer Impresión 5 23-02-2004 06:53:02
Dudas sobre IP acertij022 Internet 0 20-05-2003 21:04:29


La franja horaria es GMT +2. Ahora son las 13:21: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