Amigos expertos en MySql + xHarbour

Amigos expertos en MySql + xHarbour

Postby FranciscoA » Thu Jun 04, 2009 6: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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Amigos expertos en MySql + xHarbour

Postby wmormar » Thu Jun 04, 2009 7: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
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Amigos expertos en MySql + xHarbour

Postby wmormar » Thu Jun 04, 2009 7: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
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Amigos expertos en MySql + xHarbour

Postby FranciscoA » 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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Amigos expertos en MySql + xHarbour

Postby FranciscoA » Thu Jun 04, 2009 1: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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Amigos expertos en MySql + xHarbour

Postby Willi Quintana » Thu Jun 04, 2009 2:12 pm

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

Salu2
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Amigos expertos en MySql + xHarbour

Postby FranciscoA » Thu Jun 04, 2009 2: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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Amigos expertos en MySql + xHarbour

Postby ricardog » Thu Jun 04, 2009 3:12 pm

Francisco
Buenos dias

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

SALUDOS
ricardog
 
Posts: 158
Joined: Tue Oct 11, 2005 3:10 pm

Re: Amigos expertos en MySql + xHarbour

Postby FranciscoA » Thu Jun 04, 2009 5: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.
Last edited by FranciscoA on Thu Jun 04, 2009 5:20 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Amigos expertos en MySql + xHarbour

Postby wmormar » Thu Jun 04, 2009 5: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
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Amigos expertos en MySql + xHarbour

Postby FranciscoA » Thu Jun 04, 2009 5:23 pm

Entendido, William. Muchisimas gracias.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 76 guests