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 11-02-2005
Oxa78 Oxa78 is offline
Miembro
 
Registrado: may 2003
Ubicación: Lima - Peru
Posts: 110
Poder: 22
Oxa78 Va por buen camino
DBExpress e IndexFieldNames

Saludos, gracias de antemando por toda la ayuda q siempre me brindan

... y nuevamente las torturas

Luego de migrar de Delphi 5 a Delphi 7, y cambiar el BDE x DBExpress, tengo la siguiente estructura de conexión :

Base de Datos : MS SQL Server 2000

SQLConnection1

SQLQuery1 + DataSetProvider1

DCOMConnection

ClientDataSet1 + DataSource1

y en alguna parte del codigo ejecuto esta busqueda indexando el ClientDataSet1:

Código:
    ClientDataSet1.IndexFieldNames   := 'GRUPOID';      
    ClientDataSet1.SetKey;
    ClientDataSet1.FieldByName('GRUPOID').AsString := 'DATO78';
    If ClientDataSet1.GotoKey then
        ShowMessage('Registro Encontrado')
    Else
        ShowMessage('No se Econtro el Registro');
* El problema es q a pesar de q existe el dato en la tabla respectiva, no encuentra el dato. Y lo peor es q con la aplicacion q utiliza BDE no tiene problemas, todos los componentes tienen las propiedades por defecto...

Me imgino q tal ves pueda ser alguna propiedad del SQLConnection1 o
SQLQuery1...

Gracias por la ayuda
__________________
Joseph Buttgembach Verde
Lima - Perú
Responder Con Cita
  #2  
Antiguo 27-04-2007
Oxa78 Oxa78 is offline
Miembro
 
Registrado: may 2003
Ubicación: Lima - Peru
Posts: 110
Poder: 22
Oxa78 Va por buen camino
Saludos, paso varios años desde q publique el mensaje, quería dejar el BDE y pasar a DBExpress, quise volver a realizar al migración hice pruebas con DBExpress y buscar con IndexFieldNames, SetKey y GotoKey pero aun no funciona estoy con D7 tengo el Update 7.1.

Alguien tendra alguna idea de como solucionar este asunto.

Muchas gracias nuevamente por la ayuda
__________________
Joseph Buttgembach Verde
Lima - Perú
Responder Con Cita
  #3  
Antiguo 22-09-2007
Oxa78 Oxa78 is offline
Miembro
 
Registrado: may 2003
Ubicación: Lima - Peru
Posts: 110
Poder: 22
Oxa78 Va por buen camino
Saludos, y la respuesta es, con DBExpress si tu campo es CAHR te llena de espacios en blanco por eso la busqueda con SetKey, GotoKet no funciona, los campos deben ser VARCHAR
__________________
Joseph Buttgembach Verde
Lima - Perú
Responder Con Cita
  #4  
Antiguo 23-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Rta

No es problema del DBExpress sino que al ser un campo de tipo Char en cualquier BD te almacena la cantidad de espacios hasta completar la cantidad definida en la tabla. El campo Char es recomendable en campos de longitud fíja, ya que es muy superior en perfomance a un varchar, Por qué?, bueno, pq en tipo Varchar lo que almacena en realidad es un puntero que apunta a la posicion real y no el dato propiamente dicho. Y si usas CHAR debes completar con espacios la cantidad definida en el campo menos la longitud de la cadena a buscar o bien usas LIKE <valor>%.

Otra cosa si usas SQL Server, usa ADO ya que es nativo y no otros componentes 'genéricos', además es mucho mas sencillo
Saludos

Última edición por waly2k1 fecha: 23-09-2007 a las 04:34:51.
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


La franja horaria es GMT +2. Ahora son las 08:29:07.


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