Page 1 of 1

ADO + MS-SQL

PostPosted: Thu Nov 24, 2005 5:32 pm
by Joel Andujo
Foro buenos días, estoy probando ADO + MS-SQL y va muy bien, pero me he topado con un problema.

Estoy haciento una consulta la cual me regresa un oRS con tres campos
uno de tipo TinyInt y dos de tipo nVarChar pero recorrer el oRs para meter los datos en un Array este me marca este error

"OLE Error Value : Unknown error", esto cuando intento tomar el valor con : nEmpresa:=oRs:Fields('InEmpNum'):Value
InEmpNum es del tipo TinyInt, pero si cambio este campo a tipo Int
el error ya no se presenta

Tengo que definir algo ?

De antemano mil gracias
Joel Andujo

PostPosted: Thu Nov 24, 2005 7:07 pm
by jzamoras
Los campos TinyInt se utilizan para los campos lógicos ( .T. o .F. )

PostPosted: Fri Nov 25, 2005 10:52 pm
by Joel Andujo
Gracias Zamoras, lo curioso es es que pruebo con un campo tipo SmallInt
y sucede lo mismo, no reconoce el tipo de dato. al leerlo con
nEmpresa:=oRs:Fields('InEmpNum'):Value
me marca "OLE Error Value : Unknown error"

Al pareder la clase no reconoce los campos tipo Tinyint e SmallInt y ale busque y la verdad no se por donde van los tiros, alguien que ya este trabajando con OleDB, hechem un cable por favor.

Hay una versión mas actualizada de la clase Ole del Maestro Jóse - ?

Saludo
Joel Andujo

PostPosted: Sat Nov 26, 2005 2:55 pm
by jzamoras
Yo lo hago de la siguiente forma:

Code: Select all  Expand view

::TipoCampo( oQuery:Get( "Type" ) )


//////
//------------------------------------------------------------------------------------// METHOD TipoCampo( ) retorna el tipo de campo.
//------------------------------------------------------------------------------------
METHOD TipoCampo( nTipo ) CLASS TConexion
   SWITCH nTipo  //DO CASE
      CASE 202; CASE 130; CASE 200; CASE 129   // Carácter.
          RETURN "C"
      CASE  14; CASE   5; CASE   3; CASE 131; CASE   2; CASE   4 // Numérico.
          RETURN "N"
      CASE   7; CASE 133; CASE 135   // Fecha
          RETURN "D"
      CASE  11; CASE  16             // Lógico
          RETURN "L"
      CASE 203; CASE  11; CASE 128   // Campo memo
          RETURN "M"
      DEFAULT
          MsgInfo( "Tipo de dato no válido: " + STR( nTipo ) )
   END // SWITCH CASE
RETURN NIL


Espero que esto te ayude.Saludos.

PostPosted: Sun Nov 27, 2005 10:22 pm
by R.F.
Acabo de revisar un ejemplo con SQL Server y con ADO y me esta regresando bien los valores.

(x)Harbour 99.5 y FW 2.6

PostPosted: Mon Nov 28, 2005 6:35 pm
by jlcapel
Joel,

"OLE Error Value : Unknown error", esto cuando intento tomar el valor con : nEmpresa:=oRs:Fields('InEmpNum'):Value


Usas ADO contra MySql... ¿Como? ¿ODBC? Si es Odbc, cual versión de MyOdbc usas?? ¿Cual versión de MySql? ¿y de ADO?

Saludos,
José Luis Capel

PostPosted: Tue Nov 29, 2005 3:10 pm
by Joel Andujo
José Luis, estoy usando FWH 2.4 + Microsoft-SQL + ADO (TOleAuto del master José -)

Ya he trabajado con Odbc utilizando TOdbc() y va muy bien, pero ahora busco mejorar los tiempos usando ADO y me he topado con el problema que les comento.

Gracias a todos saludos
Joel Andujo

PostPosted: Tue Nov 29, 2005 11:02 pm
by jlcapel
Joel,

Si es la versión original de tOleAuto (y no la que viene actualmente con xharbour) es probable (y repito probable) que ahí radique el problema.

Intenta bajarte los ultimos binarios de xhabour. Y, desde xharbour (son FWH) intenta hacer las mismas operaciones. Casi te puedo asegurar que no vas a tener ningún problema.

Ya me contarás como te fue.

Saludos,
José Luis Capel

PostPosted: Thu Dec 01, 2005 3:33 pm
by Joel Andujo
Gracias José Luis por ahi me voy a ir, de hecho tengo la inquietud desde hace algun tiempo de cambiarme a xHarbour y ahora con mas razón.

Ya te contaré como me fue

Saludos
Joel Andujo

PostPosted: Sat Dec 03, 2005 5:10 pm
by Joel Andujo
José Luis, exacto era eso!!!, despues de pegarme un tiro(buscarle, buscarle y volver a buscrale) recompilando FW24 y mis librerias de terceros con xHarbour 0.99.50 (SimPlex) de xHarbour.org ya el ejemplo de ADO me regresa los valores correctos.

Saludos
Joel Andujo