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

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2006
Ade Ade is offline
Miembro
NULL
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 13
Ade Va por buen camino
seleccionar fila dbgrid stackoverflow

Hola a todos
tengo un Zquery ,datasource, dbgrid ,combobox, edit ,boton(buscar) y boton (modificar).
Seleccionando en el combobox el campo e introduciendo en el edit la sentencia para que busque ( para el like) y pulsando en buscar, me muestra los datos encontrados en el dbgrid, eso funciona.

Pero teniendo activada la opción dgRowSelect del DBGrid mi problema es que si query me devuelve solo un registro me deja seleccionar la fila y tras pulsar modificar en los dbedit me aparecen los datos de ese registro, pero cuando el query me devuelve + de 1 registro, cuando trato de seleccionar una fila ( solo quiero seleccionar una para poder modificar ) me sale un error:

stackoverfow ( creo q lo escribi mal)

alguien sabe a que puede deberse??

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 02-10-2006
Ade Ade is offline
Miembro
NULL
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 13
Ade Va por buen camino
error en mi codigo?

asi realizo la busqueda tras pulsar el boton buscar:
Código Delphi [-]
cadena:='Select cod_proveedores,descripcion_proveedor,tipo_proveedor,telefono from Proveedores where '+PChar(Combo.text)+' Like "%'+PChar(Cadena.Text)+'%" order by '+PChar(Combo.text);
ZQuery1.Sql.Clear;
ZQuery1.Sql.Add(cadena);
y tras mostrarme los datos en el dbgrid y pulsar modificar:
Código Delphi [-]
procedure TProveedores.ModificarClick(Sender: TObject);
begin
     ZTable1.Open;
     ZTable1.Locate('cod_proveedores', ZQuery1.FieldByName('cod_proveedores').AsInteger, []);
     Ztable1.Edit;
end
podria estar ahi mi fallo??
pues el query devuelve varios registros y entonces
Código Delphi [-]
ZQuery1.FieldByName('cod_proveedores').AsInteger
no estaria fijado y por ello no puedo seleccionar la fila en el dbgrid??
si alguien pudiera ayudarme..

Gracias d etodos modos, seguire intentandolo
Saludos
Responder Con Cita
  #3  
Antiguo 04-10-2006
Ade Ade is offline
Miembro
NULL
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 13
Ade Va por buen camino
Problema solucionado, algunas veces lo mejor es eliminar los componentes y volver a empezar, pues hice tantas modificaciones para q funcionara que no modifique algo q no debia, pues probé en un proyecto nuevo y funcionaba, asi q empece.

Saludos y gracias
Responder Con Cita
  #4  
Antiguo 07-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
NULL
 
Registrado: sep 2006
Posts: 90
Poder: 13
Max_E. Va por buen camino
hola a todos:

Ade, quiero hacer la misma aplicacion de busqueda y estoy utilizando los mismo codigos y componentes que tú, quiera por favor le des una mirada a mis codigos pues no funcionan apesar que solo cambio los nombres de los campos y de componentes.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    ComboBox1: TComboBox;
    DBGrid1: TDBGrid;
    Button1: TButton;
    DataSource1: TDataSource;
    Query1: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
query1.Open;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Query1.Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
cadena:string;
begin
cadena:='Select nombre, codigo from busqueda where '+PChar(Combobox1.text)+' Like "%'+PChar(edit1.Text)+'%" order by '+PChar(Combobox1.text);
Query1.Sql.Clear;
query1.SQL.Add(cadena);
end;
end.

y en el SQL del query inicialmente tiene

Código Delphi [-]
Select *
from busqueda

donde: busqueda en el archivo DB


lo curioso es que cuando por directamente en el SQL inicial
Código Delphi [-]
Select nombre, codigo from busqueda where nombre Like "%j%" order by nombre

funciona perfectamente y busca todos los nombre que empiesen con J
Responder Con Cita
  #5  
Antiguo 07-10-2006
Ade Ade is offline
Miembro
NULL
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 13
Ade Va por buen camino
hola max, activaste el query??, tal vez si haces el open despues..
prueba esto y sino lo vuelvo a mirar.
Código Delphi [-]
                ZQuery1.Active:=true;
                ZQuery1.Sql.Clear;
                ZQuery1.Sql.Add(cadena);
                ZQuery1.Open;

Saludos
Responder Con Cita
  #6  
Antiguo 07-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
NULL
 
Registrado: sep 2006
Posts: 90
Poder: 13
Max_E. Va por buen camino
ufff.....

hola Ade:

Me faltaba abrir el query despues de cargar la nueva cadena , ahora si funciona.

muchas, muchas, muchas gracias.
Responder Con Cita
  #7  
Antiguo 07-10-2006
Ade Ade is offline
Miembro
NULL
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 13
Ade Va por buen camino
y a mi se me olvido ponerlo en el 1º codigo que publique
me alegro de que t funcionara, solo comentarte q debes de asegurarte de q el usuario seleccione algo en el combo e introduzca algo en el edit,
antes de hacer el select, sino te dará error, para el combo lo puedes ver con

Código Delphi [-]
if Combo.ItemIndex <> -1 then 
//ha seleccionado alguno
else 
//no selecciono ninguno

Saludos
Responder Con Cita
  #8  
Antiguo 07-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
NULL
 
Registrado: sep 2006
Posts: 90
Poder: 13
Max_E. Va por buen camino
ok

hola denuevo Ade
ok, lo tomare en cuenta
Responder Con Cita
Respuesta


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
Seleccionar fila DBgrid ?? Coco_jac Varios 3 25-05-2010 16:58:41
Seleccionar una fila de un DBGrid zvf Conexión con bases de datos 6 29-09-2006 02:28:54
Seleccionar una fila en un DBGRID erickperez6 Conexión con bases de datos 1 02-05-2004 16:49:34
seleccionar fila de un DBGrid empty Varios 1 31-03-2004 12:00:47
Seleccionar una fila de un dbgrid NuncaMas Conexión con bases de datos 3 22-01-2004 09:55:48


La franja horaria es GMT +2. Ahora son las 20:54:46.


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