FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Amigos expertos en MySql + xHarbour
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 06:59 AM
Amigos del foro:
Estoy tratando de empezar a usar MySql+xHarbour, y estoy confundido con el codigo que describo abajo (el que está en negrilla). Tengo dos dias sin lograr que funcione. ¿Este codigo puede trabajar solamente con MySql+xHarbor, o estoy omitiendo algún otro componente?
Estoy utilizando las librerias MySql .lib y LibMySql.lib que las cree sin problemas. El caso es que no crea la tabla.
Aquí el codigo que estoy empleando, y que brinda gentilmente William. (la coneccion al servidor trabaja bien)

#include "fivewin.ch"

STATIC oCon

//----------------------------------
FUNCTION main()
MSGRun( "Conectando a server-sql, espere...", "FAPSOFTWARE", ;
{|| oCon := TMYsqlServer():new( "localhost", "root", "fappp", 3306)} )
IF oCon:lError
MsgStop( "Se ha generado un error, no hay conexión, verifique...","Alto" )
RETURN NIL
ENDIF

IF !oCon:DBExist( "tutor" )
**MSGRun( "Creando contenedor, espere...",, {|| oCon:DBCreate( "tutor")} )
MSGRun( "Creando contenedor, espere...",, {|| oCon:CreateDataBase( "tutor")} )
ENDIF

oCon:SelectDB( "tutor" )
IF oCon:lError
MsgStop( "No se pudo seleccionar el contenedor...","alto" )
RETURN NIL
ENDIF

if MsgNoYes("Crear tabla tipo xBase?")
// Aquí llamaremos a la creación de la tabla tipo xbase
Createxbase()
else
// Aquí llamaremos a la creación de la tabla SQL directa
**Createsqldirecta()
MiTablaSql()
Endif

oCon:end()

RETURN NIL

//-------------------------
STATIC FUNCTION Createxbase()
LOCAL aTabla := {}

aadd( aTabla, { "clave" , "C", 10, 0} )
aadd( aTabla, { "nombre" , "C", 40, 0} )
aadd( aTabla, { "otro" , "N", 5, 0} )
aadd( aTabla, { "otromas", "N", 6, 2} )

if oCon:TableExist( "tipoxbase" )
MsgInfo("Tabla TIPOXBASE existe... vamos a borrarla.")
if oCon:DeleteTable("tipoxbase")
Msginfo("Tabla TIPOXBASE ha sido borrada")
else
MsgInfo(oCon:Error())
endif
endif

if oCon:TableExist( "tipoxbase" )
MsgInfo("La Tabla TIPOXBASE aun existe")
else
MsgInfo("Tabla TIPOXBASE no existe")
endif

// CreateTable( cTable, aStruct, cPrimaryKey, cUniqueKey, cAuto)
IF !oCon:CreateTable( "tipoxbase", aTabla, "clave" )
MsgInfo( "No pudo crear la tabla, verifique..." )
ELSE
MsgInfo("Tabla TIPOXBASE ha sido creada")
ENDIF

RETURN NIL

//-------------------------//Esta tampoco me funciona
STATIC FUNCTION Createsqldirecta()
LOCAL cQuery

if oCon:TableExist( "modosql" )
MsgInfo("Tabla MODOSQL existe...")
else
MsgInfo("Tabla MODOSQL NO EXISTE...")
endif

cQuery := [CREATE TABLE IF NOT EXISTS modosql( ]
cQuery += [clave varchar(10) DEFAULT "wmormar", ]
cQuery += [nombre varchar(40) DEFAULT "william morales", ]
cQuery += [otro int(5) DEFAULT 0, ]
cQuery += [otromas decimal(6,2) DEFAULT 0.00, ]
cQuery += [PRIMARY KEY ("clave") ]
oCon:Query( cQuery )


IF oCon:lError
MsgInfo( "No se pudo crear la tabla, verifique...¿porque?" )
ELSE
MsgInfo( "Tabla ha sido creada." )
ENDIF

RETURN NIL


//-------------------------//ESTA ES LA DEL PROBLEMA
STATIC FUNCTION MiTablaSql()
LOCAL cCmdSql
local cTablas:="Tablas: ",aTablas, n:=0

if oCon:TableExist( "clientes" )
MsgInfo("Tabla CLIENTES ya existe...")
else
MsgInfo("Tabla CLIENTES NO EXISTE...")
endif

cCmdSql:= "CREATE TABLE IF NOT EXISTS clientes (" +;
"ROW_ID INTEGER NOT NULL AUTO INCREMENT COMMENT 'Llave'," +;
"CODIGO DECIMAL(05,0) NOT NULL COMMENT 'Codigo de Cliente'," +;
"NOMBRE CHAR(50) NOT NULL COMMENT 'Nombre o Razón Social'," +;
"OBSERVAC TEXT NOT NULL COMMENT 'Observaciones'," +;
"FECHA DATE NOT NULL COMMENT 'Fecha de actualizacion'," +;
"HORA TIME NOT NULL COMMENT 'Hora de actualizacion'," +;
"PRIMARY KEY(ROW_ID))" +;
"ENGINE = InnoDB COMMENT 'clientes';"

oCon:Execute(cCmdSql) //a pesar de que no encuentro en la Classe este comando, compila sin error)

IF oCon:lError
MsgInfo( "No se pudo crear la tabla, verifique..." )
ELSE
MsgInfo( "Tabla ha sido creada... supuestamnte." )
ENDIF


if oCon:TableExist( "clientes" )
MsgInfo("OK, La Tabla CLIENTES fue creada.","Comprobando")
else
MsgInfo("OJO, no fue creada la Tabla CLIENTES","Comprobando")
endif

aTablas:=oCon:ListTables()
For n:=1 to len(aTablas)
cTablas+=" "+aTablas[n]
Next
MsgInfo(cTablas)

RETURN NIL


Gracias de antemano.
Francisco.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 07:15 AM

FranciscoA,

En lugar de esto:
oCon:Execute(cCmdSql) //a pesar de que no encuentro en la Classe este comando, compila sin error)

Usa esto:
oCon:Query(cCmdSql)

saludos

William, Morales

Saludos



méxico.sureste
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 07:19 AM

FranciscoA,

Aquí el problema:

//-------------------------//Esta tampoco me funciona
STATIC FUNCTION Createsqldirecta()
LOCAL cQuery

if oCon:TableExist( "modosql" )
MsgInfo("Tabla MODOSQL existe...")
else
MsgInfo("Tabla MODOSQL NO EXISTE...")
endif

cQuery := [CREATE TABLE IF NOT EXISTS modosql( ]
cQuery += [clave varchar(10) DEFAULT "wmormar", ]
cQuery += [nombre varchar(40) DEFAULT "william morales", ]
cQuery += [otro int(5) DEFAULT 0, ]
cQuery += [otromas decimal(6,2) DEFAULT 0.00, ]
cQuery += [PRIMARY KEY ("clave") ]
oCon:Query( cQuery )

Si te fijas, después de modosql, hay un paréntesis, bueno, pues como toda estructura, hay que cerrarlo.

Después de PRIMARY KEY (clave") aqui, va el otro paréntesis

saludos

William, Morales

Saludos



méxico.sureste
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 12:47 PM

William, muchisimas gracias por contestar.
Ya modifiqué lo indicado, pero sigue igual. Solo crea la tabla en modoxbase. Sigo en la batalla.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 01:25 PM

William: Estoy utilizando El paquete MySql-cluster-gpl 7.05-win32 y la TMySql que la bajé de xharbour-1.2.1.scr.contrib. ¿Crees que hay alguna incompatilidad? ¿Qué versiones estás usando?
Gracias.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 02:12 PM

Hola,,,
dale un vistazo a : http://wmormar.blogspot.com/

Salu2

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 02:51 PM

Gracias Willi. En efecto, casi a diario le doy seguimiento al blog de William.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 03:12 PM

Francisco
Buenos dias

En la sintaxis tienes este error :
tu escribes AUTO INCREMENT
debe ser AUTO_INCREMENT

SALUDOS

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 05:04 PM

Ricardo:
¡Magnifico! ¡Excelente!...!Al fin funciona!. Estaba a punto de "colgar los guantes". En lo futuro, voy a ser más cuidadoso para no "trabarme". Lo raro es que no presenta ningún mensaje de error por mala sintaxis. Sólo no creaba la tabla.
Muchas gracias a tí, y a cada uno de ustedes.

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 05:20 PM
FranciscoA wrote:Ricardo:
¡Magnifico! ¡Excelente!...!Al fin funciona!. Estaba a punto de "colgar los guantes". En lo futuro, voy a ser más cuidadoso para no "trabarme". Lo raro es que no presenta ningún mensaje de error por mala sintaxis. Sólo no creaba la tabla.
Muchas gracias.

Saludos.


FranciscoA,

De hecho si envía un mensaje, solo que regresa una consulta. en esa consulta va el error.

saludos
William, Morales

Saludos



méxico.sureste
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Amigos expertos en MySql + xHarbour
Posted: Thu Jun 04, 2009 05:23 PM

Entendido, William. Muchisimas gracias.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion