Page 1 of 1

ADO Migration wizard error

Posted: Fri 28 Nov 2008 00:28
by FerCastro
Hello

I have one application with ADO and some virtual tables, and I ran the migration wizard to change to SDAC.

After the migration process I get the following error:

[DCC Error] MDatos.pas(6): F2051 Unit OLEDBAccess was compiled with a different version of MemData.TBlob

And i can not generate my exe file. What do I have to do to compile?

Thanks and best regards

Posted: Mon 01 Dec 2008 08:40
by Dimon
If you have installed only TVirtualTable component you should uninstall it. Also try to reinstall SDAC.

Posted: Mon 01 Dec 2008 15:51
by FerCastro
Hello Dimon,

Thanks a lot for your response. I have reinstalled SDAC and VTable, and the error message is still there.

Thanks

FCG

Posted: Tue 02 Dec 2008 13:10
by Dimon
You should not to install VTable. SDAC build contains the TVirtualTable component too.

Posted: Tue 02 Dec 2008 15:19
by FerCastro
Dimon,

I have tested with both scenarios: installing only SDAC and installing SDAC and VTable, and in both cases I get the same error message.

Thanks a lot for your answer

Posted: Wed 03 Dec 2008 10:44
by Dimon
In order to solve this problem execute the following steps:
- uninstall VirtualTable;
- uninstall SDAC;
- find all MemData.dcu, MemDS.dcu, MemUtils.dcu files on your PC and delete them;
- find all vtable*.bpl files on your PC and delete them;
- install SDAC.

Posted: Tue 13 Jan 2009 18:44
by FerCastro
Hello Dimon,

I have replaced all the components and the migration works fine, just two questions:

In my source I have the following code:

Code: Select all

Parameters.ParamByName('h1').Value := dsInicio1.Time;
Parameters.ParamByName('h2').Value := dsInicio2.Time;
Parameters.ParamByName('h3').Value := dsInicio3.Time;
Parameters.ParamByName('h4').Value := dsInicio4.Time;
But the code does not recognize my code. Is there an equivlent?

And the second one.

I have the following code:

Code: Select all

  With DATA.qEditaSucursal do
    Begin
      Close;
      SQL.Text := '';
      SQL.Text := ' SELECT * from sucursal ' +
                  ' WHERE Activo = ' + IntToStr(1) + cCadenaSucursales +
                  ' ORDER BY NOMBRE';
      Open;
    End;
My table has only two records but with ADO connection the application displays data in 2 seconds, but with Devart Components the application displays data in 19!! (nineteen) seconds!! is this usual?

Best regards and thanks

- WXPSP2
- D2007W32
- SDAC 4.50
- MS SQLServer 2005
- Remote server

Fernando Castro

Posted: Wed 14 Jan 2009 09:03
by Dimon
FerCastro wrote:In my source I have the following code:

Code: Select all

Parameters.ParamByName('h1').Value := dsInicio1.Time;
Parameters.ParamByName('h2').Value := dsInicio2.Time;
Parameters.ParamByName('h3').Value := dsInicio3.Time;
Parameters.ParamByName('h4').Value := dsInicio4.Time;
But the code does not recognize my code. Is there an equivlent?
You should use the Params property instead of Parameters, like this:

Code: Select all

Params.ParamByName('h1').Value := dsInicio1.Time;

Posted: Wed 14 Jan 2009 09:17
by Dimon
FerCastro wrote:I have the following code:

Code: Select all

  With DATA.qEditaSucursal do
    Begin
      Close;
      SQL.Text := '';
      SQL.Text := ' SELECT * from sucursal ' +
                  ' WHERE Activo = ' + IntToStr(1) + cCadenaSucursales +
                  ' ORDER BY NOMBRE';
      Open;
    End;
My table has only two records but with ADO connection the application displays data in 2 seconds, but with Devart Components the application displays data in 19!! (nineteen) seconds!! is this usual?
To solve the problem try to set the TMSQuery.FetchAll property to False or TMSQuery.UniDirectional property to True.