Ver Mensaje Individual
  #5  
Antiguo 15-10-2005
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Reputación: 22
Esau Va por buen camino
Solucion

Bueno amigo Caro temo decirte que la solucion que me ofreces no funciona, al parecer hay un error en el mismo control...
lo explicare mejor:
tengo una Tabla en un servidor SQL Server 2000 que corre sobre Windows 2003 Server, Tengo campos en mi tabla les dare solo los importantes...
Codigo Varchar(10), ApPaterno Varchar(20) ApMaterno VarChar(20) Nombres varchar(20), el campo clave en mi tabla es Codigo. En el campo codigo existen datos de 8 caracteres y de 10 caracteres, suponiendo que tengo los datos
Codigo : '00980432' -> este dato tienen 8 carateres
Codigo : '1013257613' -> este dato tiene 10 caracteres

cuando hago una busqueda con DBExpres y el valor '00980432' dentro del parametro, no arroja ningun registro, pero cuando paso el dato '1013257613' si arroja registro, ahora hice la prueba de pasar este dato '00980432 ' "dese cuenta que al final se tiene dos espacios en blanco", cuando ejecuto , si me arroja el registro que busco... algo parecido sucede con el Like o quizas peor, ahora la solucion que he propuesto es esto...
Código Delphi [-]
procedure TForm_Buscar.BuscarClick(Sender: TObject);
begin
  ClientDataSet1.Close;
  SQLQuery.Close;
  SQLQuery.SQL.Clear;
  if DBCodigo.Text <> '' then
    Begin
      SQLQuery.SQL.Add('Select Codigo from Personal where Codigo = '+Char(39)+DBCodigo.Text+Char(39));
      Query.Open;
      if ClientDataSet1.RecordCount = 0 then
             ShowMessage('El Codigo '+DBCodigo.Text+' no se encuentra en la Base de datos, por favor Verificar...');
    End;
End;
Con el LIKE sucede algo parecido, lo que hago es cerrar el conjunto de datos cliente luego armar la consulta en el SQLQuery no pasar parametros y luego Abrir el Conjunto de Datos Cliente, de esta forma consigo registros...
para el Like Hice esto.
Código Delphi [-]
  if Length(DbNombre.Text) <> 0 then
    Begin
             ClientDataSet1.Close;
      SQLQuery.SQL.Add('Select Codigo, Nombres from Personal where Nombres like '+Char(39)+'%'+DBNombre.Text+'%'+Char(39)+' ');
      ClientDataSet1.Open;
    End;

Hata Ahora todo funciona bien con esta solucion ya he implementado algunas DLL y Modulos Con DBExpres... si alguien tiene alguna otra sugerencia me gustaria saberla...
Gracias por Todo

Última edición por Esau fecha: 15-10-2005 a las 18:55:14.
Responder Con Cita