Delphi - ADODataSet

 
Vista:

ADODataSet

Publicado por Jorge (6 intervenciones) el 28/09/2007 00:47:02
Hola.

Estoy tratando de utilizar un DataSet, donde al CommandText le asigno la sentencia SQL con el parametro :cuit

Cuando quiero asignar el valor del parametro me sale el error:

E2010 Incompatible types: 'Variant' and 'Integer'

La linea de codigo donde se produce es la siguiente:

dsEmpresa.Parameters.ParamValues['cuil'] := self.getCuit;

donde dsEmpresa es el DataSet y self.getCuit devuelve un integer.

Si alguien me puede ayudar con este inconveniente se lo agradezco.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ADODataSet

Publicado por BigLuis (713 intervenciones) el 28/09/2007 09:11:08
Prueba a hacer la asignacion de esta forma. A mi me funciona. Tambien son integer.
Query1.Parameters.ParamByName('REGNODATOS').Value:=RegDatos;
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ADODataSet

Publicado por Jorge (6 intervenciones) el 28/09/2007 13:11:05
Gracias por la respuesta, pero no me ha funcionado tampoco.

Lo que no comente, es que estos algoritmos estaban implementados para Delphi 6, donde funcionaban de maravilla, pero ahora estoy usando Turbo Delphi for .NET

El problema radica en el tipo variant, que supuestamente varia.

En el caso de asignar el valor a un campo, tuve que modificar el codigo:

atEmpresa.FielValues['cuit'] := self.getCuit

por:

atEmpresa.FieldByName('cuit').AsInteger := self.getCuit;

donde atEmpresa es un ADOTable.

No se si tiene algo que ver el cambio de Delphi?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ADODataSet

Publicado por Jorge (6 intervenciones) el 28/09/2007 13:35:47
Respondiendo a mi problema.

Lo solucione asignando nulo a el parametro antes que el integer. entonces quedaria asi:

dsEmpresa.Parameters.ParamValues['cuil'] := null;
dsEmpresa.Parameters.ParamValues['cuil'] := self.getCuit;

Con esto nos aseguramos que el parametro no tenga referencia a algún tipo diferente de dato, por lo cual luego tomará el tipo asignado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar