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'; Me imgino q tal ves pueda ser alguna propiedad del SQLConnection1 o SQLQuery1... Gracias por la ayuda |
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 |
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
|
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 |
La franja horaria es GMT +2. Ahora son las 19:14:44. |
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