La Web del Programador: Comunidad de Programadores
 
    Pregunta:  441 - ACTIVEX DATA OBJECT
Autor:  Esteban Bruna
Estoy creando un recordset (ADO), para llenarlo con los datos de una tabla que esta en una base de datos (sql Server 6.5), pero tengo un problema, cuando me encuentro con un dato tipo numeric, en sql server, este no almacena su real valor (su valor numerico), asi que cundo recorro el recordset para sacar los datos y me encuentro con el campo numerico no me retorna nada...

Ej: cNumero = rst.FIELDS.ITEM(´monto´).VALUE
cNumero --> me devuelve un error.

P.D.: Estoy trabajando con una tecnologia Cliente/servidor, (sql Server 6.5 y VisualFoxpro 5).


  Respuesta:  Oscar M.
Yo lo he utilizado con VisualBasic pero espero que la explicación te sirva para FoxPro. Utilizando ADO puedes hacer una referencia directa a un RecordSet usando el método OPEN, por ejemplo, la sintaxis siguiente se conecta a SQLServer:
Dim rs as New ADODB.Recordset
rs.Open "Select * from Authors","DNS=pubs;UID=sa;PWD="
Do until rs.EOF
print rs.au_lname
rs.MoveNext
loop
rs.Close
El problema que podrías tener en ese campo numérico es alguna asignación incorrecta en cuanto al tipo de campos que estas utilizando. Por ejemplo, en la base de datos podría estar como un string y al recuperarlo estás tratando de asignarlo a un campo numérico.

Espero te sea de utilidad. Saludos.