Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Convirtiendo tabla BDE a ADO (https://www.clubdelphi.com/foros/showthread.php?t=79015)

Madset 03-06-2012 22:50:58

Convirtiendo tabla BDE a ADO
 
Hola amigos, hace rato que leo el foro pero he participado muy poca veces. Ahora recurro a ustedes para una ayuda con un codigo que estoy tratando de convertir de BDE a ADO.

La cuestión es que en mi aplicación cambié las ttable por adotable debido a que no podía hacer conexión a 64 bits con BDE. Dentro del codigo hay unas lineas que hacen referencia a las ttable

Código:

DMGate.ADOtable.SetKey;
  DMGate.ADOtable.FieldByName('date').AsDateTime := F_simulacion;
 if not DMGate.ADOtable.GotoKey then
.
.
.
.
bla bla bla

Yo no escribí esto, solo lo estoy usando de unas lineas que me pasaron y fueron escritas hace mucho tiempo. Lo que entiendo que hace es buscar en la ADOTable el primer valor del campo date que coincida con la F_simulacion.
El problema surge que SetKey no es una propriedad de tADOtable al igual que GotoKey. Mi pregunta es, Cuáles serían las propriedades equivalentes en ADO o como sería una forma de cambiar esto para que haga lo mismo pero en ADO.

De antemano gracias por su colaboración con esto, les debería mi proyecto de investigación si me ayudan a solucionarlo

Gracias!!!

ecfisa 04-06-2012 00:03:16

Hola Madset.

Si no te entendí mal sería:
Código Delphi [-]
  if not DMGate.ADOTable.Locate('date', F_simulacion, []) then
  ...

Saludos.

luisgutierrezb 04-06-2012 01:06:07

Otra solucion que podrias usar seria los clientdataset que te permiten el setkey y gotokey y pueden convivir con ado

Madset 05-06-2012 15:48:24

Cita:

Empezado por ecfisa (Mensaje 434177)
Hola Madset.

Si no te entendí mal sería:
Código Delphi [-]
  if not DMGate.ADOTable.Locate('date', F_simulacion, []) then
  ...

Saludos.

Gracias por la respuesta, ya cambié el código con esta línea. Exactamente eso era lo que buscaba pero lastimosamente no me funcionó. Lo que se supone debe hacer es encontrar el valor de F_simulacion (el cual es una fecha) en el campo date de la ADOTable, y si no lo encuentra cerrar el programa. El problema ahora es que a pesar de que el valor F_simulacion esta en la ADOTable igual no lo encuentra. Ya me aseguré que la ADOTable tenga ese valor en el campo correcto, pero aún así sigue sin encontrarlo. Más información: Las tablas las tengo en acces 2010. Estoy usando ADO porque era lo que me servia en Win764bits. La conexión entre la base de datos y delphi está bien. El campo date en la tabla es una fecha. La variable F_simulacion la lee de otra tabla en la misma base de datos.

Gracias por las respuesta

Luis, como se usan los clientdataset? algún link donde pueda ver esta info ?

ecfisa 05-06-2012 17:55:44

Hola Madset.

Cita:

El problema ahora es que a pesar de que el valor F_simulacion esta en la ADOTable igual no lo encuentra. Ya me aseguré que la ADOTable tenga ese valor en el campo correcto, pero aún así sigue sin encontrarlo.
Si el valor está en el ADOTable el método Locate tendría que encontrarlo.... Revisa bién el formato que tiene el campo 'date' y el formato que le envias en la variable F_Simulación a ver si difieren y también si ambas son del mismo tipo (TDate o TDateTime)

Saludos.


La franja horaria es GMT +2. Ahora son las 04:59:16.

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