Tengo instalada la versión 5.5.32 de MariaDB.
El asunto es que al hacer un recordset a tablas con campos tipo TEXT o BLOB genera error : Error adodb.recordset/6 DISP_E_UNKNOWNNAME: EOF.
El mismo ejercicio en MySQL funciona perfecto.
Script de la tabla :
Code: Select all | Expand
DROP TABLE IF EXISTS `prueba_text`;
CREATE TABLE `prueba_text` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`observac` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of prueba_text
-- ----------------------------
INSERT INTO `prueba_text` VALUES ('1', 'En MySQL funciona perfecto pero falla en MariaDB.... !!!!');
INSERT INTO `prueba_text` VALUES ('2', 'Otro texto en el campo Text');
Prg de prueba :
Code: Select all | Expand
#include "FiveWin.ch"
#include "Ado.ch"
Function Inicio()
LOCAL oMiConexion, oRecordSet, cQuery, cStrCnn
LOCAL cMtrMySql := "Driver={MySQL ODBC 5.3 ANSI Driver} ; Server=localhost ; Database=Base01 ; User=root ; Password=12345 ; Port=3306 ; Option=3"
LOCAL cMtrMariaDB := "Driver={MariaDB ODBC 1.0 Driver} ; Server=localhost ; Database=Base01 ; User=root ; Password=12345 ; Port=3307 ; Option=3"
LOCAL lMariaDB := .T.
cStrCnn := iif(lMariaDB , cMtrMariaDB , cMtrMySql )
oMiConexion := TOleAuto():New("adodb.connection")
oMiConexion:Open(cStrCnn)
oRecordSet := TOleAuto():New("adodb.recordset")
oRecordSet:CursorLocation := adUseClient // : 3
oRecordSet:LockType := adLockOptimistic // : 3
oRecordSet:CursorType := adOpenDynamic // adOpenKeySet // : 2
oRecordSet:ActiveConnection(oMiConexion)
cQuery := "SELECT * FROM prueba_text"
oRecordSet:Open(cQuery) // <<<===>>> Aquí truena con MariaDB
if !oRecordSet:EOF()
oRecordSet:MoveFirst()
end
xBrowse(oRecordSet, iif(lMariaDB , "Conectado a MariaDB" , "Conectado a MySql" ))
Return(NIL)
Qué estoy haciendo mal ? Alguien ha tenido este mismo problema con las campos TEXT en MariaDB ? Cómo lo soluciono ?
Muchas gracias por su ayuda y abrazos para todos,