Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Conexión con bases de datos
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Conexión con bases de datos

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 21/07/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Lo que no entiendo, en principio, es para qué haces una consulta si lo que quieres es agregar registros.
Reply With Quote
  #2  
Old 21/07/2012
disturbednoise disturbednoise is offline
Registrado
NULL
 
Join Date: May 2012
Posts: 7
Poder: 0
disturbednoise Va por buen camino
Red face Respuesta

Buen dia

El programa que estoy intentando desarrollar es sobre facturacion.

Cuento con un TextEdit que al momento de poner por ejemplo un ID de algún articulo y dar click en el botón llamado "agregar" en el evento onclick llamado "agregarProducto", quiero que se llene un grid con los datos del articulo, por ejemplo, descripción, precio, cantidad, etc. Para realizar una venta.

Si por ejemplo pusiera un nuevo ID, entonces desearía que mi grid se llenara con el nuevo articulo, sin borrar el anterior y así sucesivamente

El primer stored procedure llamado "consultaArticuloVentaEx" la realizo para comprobar si existe el ID en la base de datos, sino solamente regreso algun valor que me indica que no existe el articulo y muestro un mensaje.

El segundo stored procedure llamado "consultaArticuloVenta", lo mando llamar en caso de que si exista un ID válido y dejo el dm.spAgregarArt.Open; que en este caso si me llenaria mi grid con los datos correspondientes, saludos!
Reply With Quote
  #3  
Old 22/07/2012
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola disturbednoise.

Si no entiendo mal lo que estas buscando, un modo de hacerlo podría ser:
Código Delphi [-]
...
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  DataSet.Open;
  StringGrid1.FixedCols:= 0;
  StringGrid1.FixedRows:= 1; // fila reservada para título
  StringGrid1.ColCount:= DataSet.FieldCount; // tantas columnas como campos
  // poner el nombre de campo como título de cada columna
  for i:= 0 to DataSet.FieldCount-1 do
    StringGrid1.Cells[i, 0]:= DataSet.Fields[i].DisplayLabel;
end;

procedure TForm1.btnAgregarClick(Sender: TObject);
var
  i: Integer;
begin
  // Si el dato ingresado existe, pasar campos al StringGrid
  if DataSet.Locate('NOMBRE_DEL_CAMPO_BUSCADO', Edit1.Text, []) then
  begin
    for i:= 0 to DataSet.FieldCount-1 do
      StringGrid1.Cells[i, StringGrid1.Row]:= DataSet.Fields[i].AsString;
    StringGrid1.Row:= StringGrid1.Row + 1; // nuevo dato
  end
  else  // si no existe mostrar error
    MessageBox(Handle, 'Artículo inexistente', '', MB_ICONERROR + MB_OK)
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Last edited by ecfisa : 22/07/2012 at 23:20. Reason: agregar comentario
Reply With Quote
  #4  
Old 31/07/2012
disturbednoise disturbednoise is offline
Registrado
NULL
 
Join Date: May 2012
Posts: 7
Poder: 0
disturbednoise Va por buen camino
Hola ecfisa

Gracias por tu respuesta, lo que entendí de tu solución es por ejemplo traer dentro del dataset al crear la forma todos los datos de la tabla y hacer una búsqueda en el data set por el dato ingresado en mi text edit, si por ejemplo mi tabla va creciendo demasiado no existiría alguna manera de contar con dos data set o una tabla temporal en el que pueda ir abriendo y cerrando un data set, para hacer las llamadas a mi stored procedure pero al mismo tiempo ir grabando los datos a una tabla temporal para de ahí colgarlos al grid?

Disculpa la tardanza en contestar, pero me encontraba fuera de la ciudad, saludos!
Reply With Quote
  #5  
Old 01/08/2012
disturbednoise disturbednoise is offline
Registrado
NULL
 
Join Date: May 2012
Posts: 7
Poder: 0
disturbednoise Va por buen camino
Mas concretamente lo que quiero hacer es un grid que contenga los detalles de Factura o de alguna venta.

Lo llevo a cabo con un datasource y de ahi ligado a mi grid agrego el resultado de la busqueda de un articulo, pero no puedo agregar varios articulos al grid, ya que al querer usar de nuevo el datasource, me dice que esta abierto, si lo cierro entonces mi grid se queda en blanco, espero y me explique un poco mejor, gracias!!
Reply With Quote
  #6  
Old 01/08/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Creo que estás algo confundido, un dbgrid es un "visor" de un dataset. Cualquier dataset, lo asocias a un datasource y este mismo datasource lo asocias a un dbgrid... y voilá, ya aparece en el dbgrid los datos que tiene el dataset.
Lo que tenga el dataset es lo que aparecerá, se mostrará, se visualizará... en el dbgrid.
Reply With Quote
  #7  
Old 01/08/2012
disturbednoise disturbednoise is offline
Registrado
NULL
 
Join Date: May 2012
Posts: 7
Poder: 0
disturbednoise Va por buen camino
Red face

Esta parte que comentas ya me quedó mas clara, pero por ejemplo si quiero agregar el resultado de varias consultas a mi grid haciendo uso del mismo dataset seria con el ejemplo que me pusiste arriba o de que manera?

Porque tengo entendido que realizo una consulta, cuento con mi data set, lo asocio al data source y de ahi al grid y veo el resultado, pero lo que quisiera es dejar en el grid el resultado y volver a usar el data set con otra consulta para llenar el grid con mas resultados, hay alguna manera de hacer eso?, saludos y muchas gracias por todo enserio
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
dbgrid llenado de datos emenchi34 Conexión con bases de datos 14 16/11/2006 11:34
Grid a DataSet robinsongm Varios 2 28/07/2006 14:53
Agregar datos a un string grid zvf OOP 2 05/07/2006 18:55
Llenado de Base de datos Luis Castillo Firebird e Interbase 1 16/01/2006 20:52
Extraer datos de un dataset? Durbed Conexión con bases de datos 5 01/10/2004 16:40


All times are GMT +2. The time now is 10:20.


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