In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Creacion de tabla MySQL desde Xailer

Foro de Xailer profesional en español
Responder
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

Creacion de tabla MySQL desde Xailer

Mensaje por RRamonell »

Hola todos:
Estoy haciendo un proyecto de exploración con las principales
caracterí­sticas contenidas en las clases TMySQLDataSource, TSQLTable,
TSQLQuery y TDBMaskEdit, por ello les pido su ayuda para aclarar las
dudas que se presenten en esto y que por favor me tengan paciencia pues
quizás estaré dándoles mucha lata.
UNO) Al tratar de indagar sobre la existencia de una tabla por medio del
método File de la clase TMySQLDataSource, dicho método devuelve NULL ya
sea que exista o no la tabla, debiendo en cambio retornar un valor lógico:
::oMySQLDataSource1:File( "catalogo" ) Siempre retorna NULL
DOS) Al tratar de crear una nueva tabla desde Xailer por medio del
método CreateTable de la clase TMySQLDataSource y con el correspondiente
array de estructura al estilo xHarbour incluyendo un asterisco para
señalar la caracterí­stica de clave primaria:
aStruct := { { "uno" , "C*", 25, 0 }, ; Nótese el asterisco
{ "dos" , "C" , 10, 0 }, ;
{ "tres" , "N" , 11, 2 },;
{ "tresb" , "N" , 10, 0 }, ;
{ "cuatro", "D" , 8, 0 }, ;
{ "cinco" , "M" , 10, 0 }, ;
{ "seis" , "L" , 1, 0 } }
::oMySQLDataSource1:CreateTable( "catalogo", aStruct )
Me da el siguiente error (solo se presenta si pongo el asterisco en el
field-type del campo uno o en el de cualquier otro):
***************************** Registro de errores
*****************************
Exe: C:Curso MySQLMySQL.exe
Version: 1.0.0.0
Fecha: 25/07/2008
Hora: 11:35:08
Memoria libre: 1690228
Area actual: 1
------------------------- Información del compilador
--------------------------
Versión Xailer: Xailer 1.9.6 Version 1.9
Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
Compilador C/C++: Borland C++ 5.8.0
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error
-----------------------
Subsistema: MySQL
Código de error: -1
Estado: .T.
Descripción: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near '[uno]) )' at line 1
Operación: TMYSQLDATASOURCE:CREATETABLE
Argumentos: [ 1] = Tipo: C Valor: CREATE TABLE catalogo( uno
VARCHAR(25), dos VARCHAR(10), tres DOUBLE(11,2), tresb DOUBLE(10,0),
cuatro DATE, cinco MEDIUMTEXT, seis BOOLEAN, PRIMARY KEY ([uno]) )
Fichero:
Código error SO: 0
Pila de llamadas:
TMYSQLDATASOURCE:CREATETABLE (222)
TFORM1:BUTTON7CLICK (491)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (99)
(b)XCONTROL:XCONTROL (145)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (255)
TFORM1:WMCOMMAND (889)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (17)
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Creacion de tabla MySQL desde Xailer

Mensaje por Martin Del Angel »

Hola !
Mejor usa lo siquiente: es un ejemplo de codigo que tengo un programa ,
es mas seguro que funcione:
METHOD CREATABLAS() CLASS TTitulos
Local StRSql:= "CREATE TABLE `movstitulostemp` ("+;
"`movs_id` int(11) NOT NULL auto_increment,"+;
"`fedex_id` int(11) default NULL," +;
"`make` varchar(30) default NULL," +;
"`year` smallint(4) default NULL," +;
"`body` varchar(30) default NULL," +;
"`model` varchar(20) default NULL," +;
"`state` varchar(30) default NULL," +;
"`vin` char(17) default NULL," +;
"`agente_id` int(11) default NULL," +;
"`liberado` tinyint(1) default '0',"+;
"`agente` varchar(30) default NULL,"+;
"`Idagente` varchar(20) default NULL,"+;
"`agencia` varchar(30) default NULL,"+;
"`linea` integer(3) default NULL,"+;
"PRIMARY KEY(`movs_id`) )" +;
" ENGINE=MyISAM DEFAULT CHARSET=latin1"
LOCAL RETVAL:=.T.
** oDBMILENIO ES EL DATASOURCE
IF !::oDBMILENIO:File('movstitulostemp')
IF !::oDBMILENIO:Execute(StrSql)
MsgStop('Al Crear Tabla de Titulos','Error')
RETVAL:=.F.
ENDIF
ENDIF
RETURN RETVAL
Saludos...
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

Creacion de tabla MySQL desde Xailer

Mensaje por RRamonell »

Gracias por tu respuesta, ya hice el cambio y queda asi:
METHOD CreaTablas() CLASS TForm1
LOCAL StRSql:= "CREATE TABLE `movstitulostemp` ("+;
"`movs_id` int(11) NOT NULL auto_increment,"+;
"`fedex_id` int(11) default NULL," +;
"`make` varchar(30) default NULL," +;
"`year` smallint(4) default NULL," +;
"`body` varchar(30) default NULL," +;
"`model` varchar(20) default NULL," +;
"`state` varchar(30) default NULL," +;
"`vin` char(17) default NULL," +;
"`agente_id` int(11) default NULL," +;
"`liberado` tinyint(1) default '0',"+;
"`agente` varchar(30) default NULL,"+;
"`Idagente` varchar(20) default NULL,"+;
"`agencia` varchar(30) default NULL,"+;
"`linea` integer(3) default NULL,"+;
"PRIMARY KEY(`movs_id`) )" +;
" ENGINE=MyISAM DEFAULT CHARSET=latin1
LOCAL RETVAL:=.T.
IF !::oMySQLDataSource1:File( 'movstitulostemp' ) <- Linea 287 (aqui
regresa NIL)
IF !::oMySQLDataSource1:Execute( StrSql )
MsgStop('Al Crear Tabla de Titulos','Error')
RETVAL:=.F.
ENDIF
ENDIF
RETURN RETVAL
Pero sigue dando error en la verificación de existencia de la tabla:
***************************** Registro de errores
*****************************
Exe: C:Curso MySQL IIAltarnativa.exe
Version: 1.0.0.0
Fecha: 07/30/08
Hora: 11:34:47
Memoria libre: 1603544
Area actual: 1
------------------------- Información del compilador
--------------------------
Versión Xailer: Xailer 1.9.6 Version 1.9
Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
Compilador C/C++: Borland C++ 5.8.0
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error
-----------------------
Subsistema: BASE
Código de error: 1066
Estado: .F.
Descripción: Argument error
Operación: conditional
Argumentos: [ 1] = Tipo: U Valor: NIL
Fichero:
Código error SO: 0
Pila de llamadas:
TFORM1:CREATABLAS (287)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (99)
(b)XCONTROL:XCONTROL (145)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (255)
TFORM1:WMCOMMAND (889)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (15)
El objeto oMySQLDataSource1 esta declarado asi:
cDatabase = nomina
cHost = 127.0.0.1
cPassword = 4059
cUser = root
cVarName = oMySQLDataSource1
lAborOnErrors = F
lAllowProcessMessages = T
lConnected = T
lDisplayErrors = T
nPort = 3306
nTimeOut = 1000
Gracias por la ayuda que me puedas dar.
Rene Ramon Elly
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Creacion de tabla MySQL desde Xailer

Mensaje por ignacio »

RRamonell,
Seguramente este fallando el método File(), intentaremos echarle un vistazo
cuanto antes.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Xailer support]
"RRamonell" <meridiano75@prodigy.net.mx> escribió en el mensaje
news:[email=4890a127@ozsrv2.ozlan.local...]4890a127@ozsrv2.ozlan.local...[/email]
> Gracias por tu respuesta, ya hice el cambio y queda asi:
>
> METHOD CreaTablas() CLASS TForm1
>
> LOCAL StRSql:= "CREATE TABLE `movstitulostemp` ("+;
> "`movs_id` int(11) NOT NULL auto_increment,"+;
> "`fedex_id` int(11) default NULL," +;
> "`make` varchar(30) default NULL," +;
> "`year` smallint(4) default NULL," +;
> "`body` varchar(30) default NULL," +;
> "`model` varchar(20) default NULL," +;
> "`state` varchar(30) default NULL," +;
> "`vin` char(17) default NULL," +;
> "`agente_id` int(11) default NULL," +;
> "`liberado` tinyint(1) default '0',"+;
> "`agente` varchar(30) default NULL,"+;
> "`Idagente` varchar(20) default NULL,"+;
> "`agencia` varchar(30) default NULL,"+;
> "`linea` integer(3) default NULL,"+;
> "PRIMARY KEY(`movs_id`) )" +;
> " ENGINE=MyISAM DEFAULT CHARSET=latin1
> LOCAL RETVAL:=.T.
>
> IF !::oMySQLDataSource1:File( 'movstitulostemp' ) <- Linea 287 (aqui
> regresa NIL)
> IF !::oMySQLDataSource1:Execute( StrSql )
> MsgStop('Al Crear Tabla de Titulos','Error')
> RETVAL:=.F.
> ENDIF
> ENDIF
>
> RETURN RETVAL
>
> Pero sigue dando error en la verificación de existencia de la tabla:
>
> ***************************** Registro de errores
> *****************************
>
> Exe: C:Curso MySQL IIAltarnativa.exe
> Version: 1.0.0.0
> Fecha: 07/30/08
> Hora: 11:34:47
> Memoria libre: 1603544
> Area actual: 1
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.9.6 Version 1.9
> Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
> Compilador C/C++: Borland C++ 5.8.0
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1066
> Estado: .F.
> Descripción: Argument error
> Operación: conditional
> Argumentos: [ 1] = Tipo: U Valor: NIL
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFORM1:CREATABLAS (287)
> TBUTTON:ONCLICK (0)
> TBUTTON:CLICK (99)
> (b)XCONTROL:XCONTROL (145)
> TBUTTON:COMMAND (0)
> TSCROLLINGWINCONTROL:WMCOMMAND (255)
> TFORM1:WMCOMMAND (889)
> RUNFORM (0)
> TAPPLICATION:RUN (209)
> MAIN (15)
>
>
> El objeto oMySQLDataSource1 esta declarado asi:
>
> cDatabase = nomina
> cHost = 127.0.0.1
> cPassword = 4059
> cUser = root
> cVarName = oMySQLDataSource1
> lAborOnErrors = F
> lAllowProcessMessages = T
> lConnected = T
> lDisplayErrors = T
> nPort = 3306
> nTimeOut = 1000
>
> Gracias por la ayuda que me puedas dar.
>
>
> Rene Ramon Elly
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Creacion de tabla MySQL desde Xailer

Mensaje por ignacio »

RRamonell,
Arreglado. Estará disponible en la próxima actualización.
Un saludo
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
mensaje news:[email=4892d45d@ozsrv2.ozlan.local...]4892d45d@ozsrv2.ozlan.local...[/email]
> RRamonell,
>
> Seguramente este fallando el método File(), intentaremos echarle un
> vistazo cuanto antes.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> [Xailer support]
> "RRamonell" <meridiano75@prodigy.net.mx> escribió en el mensaje
> news:[email=4890a127@ozsrv2.ozlan.local...]4890a127@ozsrv2.ozlan.local...[/email]
>> Gracias por tu respuesta, ya hice el cambio y queda asi:
>>
>> METHOD CreaTablas() CLASS TForm1
>>
>> LOCAL StRSql:= "CREATE TABLE `movstitulostemp` ("+;
>> "`movs_id` int(11) NOT NULL auto_increment,"+;
>> "`fedex_id` int(11) default NULL," +;
>> "`make` varchar(30) default NULL," +;
>> "`year` smallint(4) default NULL," +;
>> "`body` varchar(30) default NULL," +;
>> "`model` varchar(20) default NULL," +;
>> "`state` varchar(30) default NULL," +;
>> "`vin` char(17) default NULL," +;
>> "`agente_id` int(11) default NULL," +;
>> "`liberado` tinyint(1) default '0',"+;
>> "`agente` varchar(30) default NULL,"+;
>> "`Idagente` varchar(20) default NULL,"+;
>> "`agencia` varchar(30) default NULL,"+;
>> "`linea` integer(3) default NULL,"+;
>> "PRIMARY KEY(`movs_id`) )" +;
>> " ENGINE=MyISAM DEFAULT CHARSET=latin1
>> LOCAL RETVAL:=.T.
>>
>> IF !::oMySQLDataSource1:File( 'movstitulostemp' ) <- Linea 287 (aqui
>> regresa NIL)
>> IF !::oMySQLDataSource1:Execute( StrSql )
>> MsgStop('Al Crear Tabla de Titulos','Error')
>> RETVAL:=.F.
>> ENDIF
>> ENDIF
>>
>> RETURN RETVAL
>>
>> Pero sigue dando error en la verificación de existencia de la tabla:
>>
>> ***************************** Registro de errores
>> *****************************
>>
>> Exe: C:Curso MySQL IIAltarnativa.exe
>> Version: 1.0.0.0
>> Fecha: 07/30/08
>> Hora: 11:34:47
>> Memoria libre: 1603544
>> Area actual: 1
>>
>> ------------------------- Información del
>> compilador --------------------------
>>
>> Versión Xailer: Xailer 1.9.6 Version 1.9
>> Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
>> Compilador C/C++: Borland C++ 5.8.0
>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>
>> ----------------------- Información detallada del
>> error -----------------------
>>
>> Subsistema: BASE
>> Código de error: 1066
>> Estado: .F.
>> Descripción: Argument error
>> Operación: conditional
>> Argumentos: [ 1] = Tipo: U Valor: NIL
>> Fichero:
>> Código error SO: 0
>>
>> Pila de llamadas:
>> TFORM1:CREATABLAS (287)
>> TBUTTON:ONCLICK (0)
>> TBUTTON:CLICK (99)
>> (b)XCONTROL:XCONTROL (145)
>> TBUTTON:COMMAND (0)
>> TSCROLLINGWINCONTROL:WMCOMMAND (255)
>> TFORM1:WMCOMMAND (889)
>> RUNFORM (0)
>> TAPPLICATION:RUN (209)
>> MAIN (15)
>>
>>
>> El objeto oMySQLDataSource1 esta declarado asi:
>>
>> cDatabase = nomina
>> cHost = 127.0.0.1
>> cPassword = 4059
>> cUser = root
>> cVarName = oMySQLDataSource1
>> lAborOnErrors = F
>> lAllowProcessMessages = T
>> lConnected = T
>> lDisplayErrors = T
>> nPort = 3306
>> nTimeOut = 1000
>>
>> Gracias por la ayuda que me puedas dar.
>>
>>
>> Rene Ramon Elly
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder