He instalado MySQL Server 5.0 en mi máquina y definido el usuario root correctamente. Con el MySQL Administrator usando la cuenta root entro perfectamente al servidor.
He creado una cuenta de usuario llamada velonet_test con su correspondiente password, pero cuando quiero entrar al servidor a través del MySQL Administrator me da el siguiente error:
Si alguien puede decirme que paso estoy obviando en la creación de usuarios le agradecería mucho que me lo contara.
Hasta luego.
-------------------------------------------------------------- Fernando Piazza Coronel Suárez República Argentina e-mail: soporte@...
Que recurso se puede implementar para borrar un Item que se ha
seleccionado en una ListView extensa (que tiene muchos registros).
<oListView>:DeleteItem(<nItem>) ---> lSuccess
¿Como ubicar el <nItem>?
Saludos,
GVigo
Que recurso se puede implementar para borrar un Item que se ha
seleccionado en una ListView extensa (que tiene muchos registros).
<oListView>:DeleteItem(<nItem>) ---> lSuccess
¿Como ubicar el <nItem>?
Saludos,
GVigo
// Pedimos confirmación PARA borrar, mostrando // como dato informativo la Clave de usuario,
oWB := WarningBox{ SELF, "Mantenimiento de Cuentas de Usuario",; "¿Estás seguro de BORRAR el Usuario " + cClave + " ..?"}
oWB:type := BOXICONQUESTIONMARK + BUTTONYESNO
IF oWB:Show() == BOXREPLYYES // elimino Row Stm := SQLStatement{"DELETE FROM Users WHERE User_Clave = 'cClave'",MyConeccionSQL} IF !stm:Execute()
stm:ErrInfo:ShowErrorMsg() RETU SELF ENDIF stm:Commit() stm:FreeStmt(SQL_DROP) ELSE SELF:oDCListViewUsers:SetFocus() RETURN ENDIF
........ ¿Donde puede estar mi Error?...., pues no se elimina ningun Registro La columna User_Clave es CLave Primeria En la Ayuda del MySql 5.0, indica la siguiente sintaxis:
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
Saludos, GVigo
LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
// Pedimos confirmación PARA borrar, mostrando // como dato informativo la Clave de usuario,
oWB := WarningBox{ SELF, "Mantenimiento de Cuentas de Usuario",; "¿Estás seguro de BORRAR el Usuario " + cClave + " ..?"}
oWB:type := BOXICONQUESTIONMARK + BUTTONYESNO
IF oWB:Show() == BOXREPLYYES // elimino Row Stm := SQLStatement{"DELETE FROM Users WHERE User_Clave = 'cClave'",MyConeccionSQL} IF !stm:Execute() stm:ErrInfo:ShowErrorMsg() RETU SELF ENDIF stm:Commit() stm:FreeStmt(SQL_DROP) ELSE SELF:oDCListViewUsers:SetFocus() RETURN ENDIF
........ ¿Donde puede estar mi Error?...., pues no se elimina ningun Registro La columna User_Clave es CLave Primeria En la Ayuda del MySql 5.0, indica la siguiente sintaxis:
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
Stm := SQLStatement{"DELETE
FROM Users WHERE User_Clave = 'cClave'",MyConeccionSQL}
IF !stm:Execute()
Corregido
Stm := SQLStatement{"DELETE
FROM Users WHERE User_Clave = '?'",MyConeccionSQL} IF
!stm:Execute( cClave
)
NO DEBES PASAR LA VARIABLE AL SQL,
SINO SU VALOR.
Claudio Torrillo
www.xcsa.com.ar
De:guvoaII@... [mailto:guvoaII@...] En nombre de ggvigo Enviado el: Martes, 27 de Junio de
2006 06:05 p.m. Para:guvoaII@... Asunto: [guvoaII] DELETE en Mysql
5.0 - ODBC 3.51
Tengo el siguiente Codigo
METHOD EliminarPB( ) CLASS WinEliminarCta
LOCAL oWB
AS WARNINGBOX
LOCA oLVI
AS ListViewItem
LOCA cClave
AS STRIN
LOCAL Stm
AS SQLStatement
// Pedimos confirmación PARA borrar, mostrando
// como dato informativo la Clave de usuario,
oWB := WarningBox{ SELF, "Mantenimiento de Cuentas de Usuario",;
"¿Estás seguro de BORRAR el
Usuario " + cClave + " ..?"}
oWB:type := BOXICONQUESTIONMARK + BUTTONYESNO
IF oWB:Show() == BOXREPLYYES
// elimino Row
Stm := SQLStatement{"DELETE FROM Users WHERE User_Clave
= 'cClave'",MyConeccionSQL}
IF !stm:Execute()
stm:ErrInfo:ShowErrorMsg()
RETU SELF
ENDIF
stm:Commit()
stm:FreeStmt(SQL_DROP)
ELSE
SELF:oDCListViewUsers:SetFocus()
RETURN
ENDIF
........
¿Donde puede estar mi Error?...., pues no se elimina ningun Registro La columna User_Clave
es CLave Primeria
En la Ayuda del MySql 5.0, indica la siguiente sintaxis:
DELETE FROM somelog WHERE user = 'jcole'
ORDER BY timestamp_column LIMIT 1;
Tengo el siguiente Codigo
METHOD EliminarPB( ) CLASS WinEliminarCta
LOCAL oWB AS WARNINGBOX
LOCA oLVI AS ListViewItem
LOCA cClave AS STRIN
LOCAL Stm AS SQLStatement
oLVI := ListViewItem{}
oLVI := SELF:oDCListViewUsers:GetSelectedItem()
cClave := AllTrim(oLVI:GetText(#Clave))
// Pedimos confirmación PARA borrar, mostrando
// como dato informativo la Clave de usuario,
oWB := WarningBox{ SELF, "Mantenimiento de Cuentas de Usuario",;
"¿Estás seguro de BORRAR el Usuario " + cClave + " ..?"}
oWB:type := BOXICONQUESTIONMARK + BUTTONYESNO
IF oWB:Show() == BOXREPLYYES
// elimino Row
Stm := SQLStatement{"DELETE FROM Users WHERE User_Clave
= 'cClave'",MyConeccionSQL}
IF !stm:Execute()
stm:ErrInfo:ShowErrorMsg()
RETU SELF
ENDIF
stm:Commit()
stm:FreeStmt(SQL_DROP)
ELSE
SELF:oDCListViewUsers:SetFocus()
RETURN
ENDIF
........
¿Donde puede estar mi Error?...., pues no se elimina ningun Registro
La columna User_Clave es CLave Primeria
En la Ayuda del MySql 5.0, indica la siguiente sintaxis:
DELETE FROM somelog WHERE user = 'jcole'
ORDER BY timestamp_column LIMIT 1;
Saludos,
GVigo
INTERESANTE DATO POR SI TE ROBAN EL CELULAR (con chip).
Los comerciantes de celulares mantienen oculta la información para
que el ladrón siga utilizando el servicio y consumiendo, y la victima
del robo compre otro teléfono y siga consumiendo. Esta es una especie de
venganza para el caso de que nos roben el celular:
Para obtener el numero de serie de sus celulares, marquen:
*#06# sin marcar send. Aparece en el visor un código. Este código
es único. Tomen nota del mismo y consérvenlo en un lugar seguro.
Si les robaran el celular, avisen al operador y denle este código. Su
celular podrá entonces ser bloqueado completamente, aunque el ladrón
cambie la
tarjeta SIM. Probablemente no recuperen su celular, pero por
lo menos tendrán la seguridad de que, quien lo haya robado no podrá
utilizarlo nunca.
Pero LO MAS IMPORTANTE es que si toda la gente supiera
esto, el robo de celulares seria inútil. Envíen esto a todos sus
conocidos y anoten su número en un lugar seguro.
Hola Jorge
Yo creo que el problema no es de Clipper o de acceso a los DBF's desde XP.
Este problema me sucede para cualquier aplicación DOS corriendo sobre XP. Es
posible que se pueda arreglar configurando la sesión DOS adecuadamente.
Respecto a VO (2.7b) a mi me funciona perfectamente en W98, WinXP y W2K
Saludos
Eusebi
---- jorgeeugenio2002 <jorgeaccinelli@...> escribió:
>
>
> Saludos al grupo:
>
>
> Aquellos que trabajaron/trabajan con clipper
> habran advertido alguna vez que al pasar una maquina
> de W98 a XP la actualizacion de las DBF se enlentece.
>
> Otra tanto puede ocurrir cuando se cambia de un servidor
> NT a W2003 por ejemplo.
>
> Este problema desaparece si el programa esta en VO ?
> Es una problema del tipo de almacenamiento independiente-
> mente del lenguaje ?
>
> Por favor, cualquier certeza en este punto será
> muy agradecida
>
> Jorge Accinelli
>
Saludos al grupo:
Aquellos que trabajaron/trabajan con clipper
habran advertido alguna vez que al pasar una maquina
de W98 a XP la actualizacion de las DBF se enlentece.
Otra tanto puede ocurrir cuando se cambia de un servidor
NT a W2003 por ejemplo.
Este problema desaparece si el programa esta en VO ?
Es una problema del tipo de almacenamiento independiente-
mente del lenguaje ?
Por favor, cualquier certeza en este punto será
muy agradecida
Jorge Accinelli
Hola, saludos. Gracias por responder. Quedará pendiente el tema
mostrar el archivo.
El asunto del RpReportEnded, no me aparece en la ayuda. Lo revisáré
más profundamente.
Pero ahora tengo otro lío:
Tengo una rutina que ingresa datos desde varios SLE a un bBrowser, la
secuencia es:
sle_codigo sle_nombreprod sle_cantidad sle_precio sle_total
Entonces cuando a llego a sle_total le hago Enter o Tab y el bBrowser
se incrementa en un registro.
En el fondo lo que pasa es que cuando sle_total pierde el foco llamo
al método self:grabar_browser(), pero ahora mi cliente me dice que si
se arrepiente en el ingreso, debe busca la línea en browser y
borrarla, él desea que cuando el foco está en sle_total y hace ESC,
no grabe, si no que limpie las sle para volver a digitar o terminar
según corresponda.
No me funciona el metodo que detecta la tacle pulsada en la
datawindow. Lo que se desea es que al hacer ESC exista alguna opción
que detecte la tecla, algo parecido a esto:
METHOD EditFocusChange( oEditFocusChangeEvent ) CLASS FACTURA_N
.
.
CASE oControl:NameSym == #E_CODIGO
IF !lGotFocus
IF TECLAPULSADA <> "ESC"
SELF:GRABAR_BROWSER()
ENDIF
ELSE
BLA, BLA,
oDCE_CODIGO:Value := ""
ENDIF
.
.
RETURN NIL
agradeceré sus comentario
aTTE.
Larry Santibáñez Flores
Muchisimas gracias gustavo los miro y veo que puedo
hacer voy a empezar probando el dosemu
un abrazo
gabriel
--- Gustavo Biasone <gb_guvoa@...>
escribió:
> Si lo que queres es correr un programa compilado en
> Clipper en una maquina con Linux podrias probar con
> DOSEMU. Esto es un emulador DOS en Linux. Yo lo hice
> hace unos cuantos años atras y funcionaba bien,
> aunque solamente fue una prueba. Es un poco
> complicada la configuracion:
> http://www.dosemu.org/
>
> Otra opcion es compilar tu codigo Clipper con un
> compilador para Linux:
>
> CLIP: http://www.itk.ru/ (en ruso)
> Harbour - http://www.harbour-project.org/
> FlagShip - http://www.mutlisoft.de/
>
>
> GB
> ----- Original Message -----
> From: GABRIEL ESPOSITO
> To: guvoaII@...
> Sent: Wednesday, June 21, 2006 11:28 AM
> Subject: [guvoaII] compilar un clipper 5.0 en
> linux
>
>
> Hola gente tengo un sistema en clipper 5.0 y me
> pide
> mi cliente si se puede utilizar sobre linux o
> unix.
> Creo que habia un compilador para linux alguno
> tiene
> idea.
> Desde ya muchas gracias
> gabriel
>
>
>
>
>
> ____________________________________________________
>
> Esa persona especial te espera en Yahoo!
> Encuentros.
> ¡Dejate encontrar!
> http://ar.encuentros.yahoo.com/
>
>
___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar
Si lo que queres es correr un programa compilado en Clipper en una maquina con Linux podrias probar con DOSEMU. Esto es un emulador DOS en Linux. Yo lo hice hace unos cuantos años atras y funcionaba bien, aunque solamente fue una prueba. Es un poco complicada la configuracion:
Subject: [guvoaII] compilar un clipper 5.0 en linux
Hola gente tengo un sistema en clipper 5.0 y me pide mi cliente si se puede utilizar sobre linux o unix. Creo que habia un compilador para linux alguno tiene idea. Desde ya muchas gracias gabriel
____________________________________________________ Esa persona especial te espera en Yahoo! Encuentros. ¡Dejate encontrar! http://ar.encuentros.yahoo.com/
Ejecute el Reindex Project varias veces y se solucionó el problema (Uso Vo 2.7b).
En las siguientes lineas, que esta fallando que no puedo eliminar un renglon.....
Stm := SQLStatement{ "DELETE FROM Users WHERE SELF:oSrvEliminaUser:FIELDGET( #User_Clave ) = cClave", MyConeccionSQL}
GVigo
Claudio Torrillo <clipsupp@...> escribió:
Gustavo,
Como te dije anteriormente, al utilizar SQLStatment o SQLSlect, debes pasar los parámetros como los debe interpretar el ODBC.
Ergo, el ? debe ser reemplazado en la cadena INSERT INTO ... tal como si la escribieramos,o sea:
['V:\LOQUESEA.PPP'], caso contrario el ODBC vería:
INSERT INTO .... (
...,V:\LOQUESEA.PPP,...)
Como podrás observar, no es lo que se espera.
En cuanto a que si lo toma luego de haber ingresado el primer "RENGLON" no lo entiendo.
Por favor, para posteriores consultas especificá el código completo, a veces 4 ojos ven más que 2.
Claudio Torrillo www.xcsa.com.ar
--- Gustavo Vigo <ggvigo@...> escribió:
> Ok, > > Como se puede explicar lo siguiente, > Cuando inicio la apertura de una Ventana y si la > Tabla no tiene ningun registro, en el PostInit() > escribo la siguiente porcion de codigo, > ---------------------------------------- > // Si no hay registros grabamos el primero > IF nReg = 0 > oStmt:= SQLStatement{"Insert into users
( > User_Clave,User_DNI,User_Name,User_LastName,User_PathFoto,User_Categoria,User_ClaveBack,User_Imagen > ) VALUES (?,?,?,?,?,?,?,?)",MyConeccionSQL} > IF !oStmt:Execute('1112811565','00000001','Gustavo > Adolfo','Guzmán > Vigo','V:\\Usuarios.bmp','ow','1112811565',cBuffer) > oStmt:ErrInfo:ShowErrorMsg() > //RETU SELF > ENDIF > oStmt:Commit() > oStmt:FreeStmt(SQL_DROP ) > ENDIF > ----------------------------------------- > Si colocara V:\\Usuarios.bmp como V:\Usuarios.bmp > ( con un solo "\"), en la tabla se almacena > V:Usuarios.bmp. > > Pero cuando agrego usuarios (cuando ya se ha > grabado el primero), con las asignaciones: > > --------------------------------------------------- > cPathFoto: =
"v:\Usuarios.bmp" > ................... o con > . > . > oOD := OpenDialog{SELF, aExt[3]} > oOD:SetFilter(aExt, aDesc, 1) > oOD:Show() > // > SELF:cPathFoto:=AllTrim(oOD:FileName) > > No necesito cambiar el "\" con "\\", ya que se > graba normalmente, > > Quisiera por favor, me hagan llegar sus > comentarios y recomendacion de como debo hacer, para > tener un buen resultado en el manejo de Tablas con > instancias SQLSELECT. > > Especificamente, como puedo realizar relaciones > entre multiples tablas en una misma pantalla (que al > navegar por sus registros, en las demas listas se > actualicen por su Llave clave). > > Estoy Utilizando MySQL
5.0 > ODBC 3.51 > y para diseñar las Tablas y Genrarlas > automaticamente los utilitarios > > CASE STUDIO 2 version 2.23 y > CASE FOXYSQL 1.1.0.1.2 > > Saludos, > > GVigo > > > > > > > > > > > > > > > "[CSA] Claudio Torrillo" <clipsupp@...> > escribió: > v\:* {behavior:url(#default#VML);} o\:* > {behavior:url(#default#VML);} w\:* >
{behavior:url(#default#VML);} .shape > {behavior:url(#default#VML);} > st1\:*{behavior:url(#default#ieooui) } > Gustavo: > > Un secreto, esta forma de trabajar es > lentíiiiiiiiiiisima. > La mejor forma de hacer esto es con la sentencia > SQL correspondiente: > > P.Ej: > > > oAppend := SQLSelect{ “INSERT INTO nombre_tabla > (‘USER_CLAVE’,’USER_NAME’,’User_PathImage’,’USER_IMAGEN’) > VALUES (?,?,?,?) } > > Con esto has preparado un commando listo para usar > con parámetros, para llamarlo sólo debes hacer los > siguiente: > > oAppend:Execute(
[‘para01’],….[‘para02’]) > > El problema es que debes expresar cada valor como > lo espera el ODBC, o sea, si el valor es carácter, > debe ser una cadena de caracteres, por eso [‘’], las > simples o dobles dan igual. > > Ahora si utlizas un SQLTable, eso no es necesario, > ya que precisamente dicha clase conoce a la > perfección los tipos de datos de cada columna y > entonces si podrás utilizar las asignaciones como > con los dbServer, yo no lo aconsejo. > > SQL es bonito, pero necesita que los comando se > escriban en forma muy clarita. > > Claudio Torrillo > www.xcsa.com.ar > > > --------------------------------- > > De:
guvoaII@... > [mailto:guvoaII@...] En nombre de > Gustavo Vigo > Enviado el: Sábado, 17 de Junio de 2006 10:06 p.m. > Para: guvoaII@... > Asunto: Re: [guvoaII] MySQL - Grabar en una SQLTable > > > Ok... > > Funciona Perfecto, > > en cuanto a las comillas y al caracter "\" > > Estoy usando Mysql 5.0 y ODBC 3.51 > > Gracias > > GVigo > > > Gustavo Biasone <gb_guvoa@...> escribió: > > Para el primer caso proba con: > > > > SELF:Server:User_Clave := '"1112811565"'
> > Esto es, primero comilla simple y luego la > doble. > > > > Para el segundo caso, generalmente se usa el > caracter "\" para ESCAPE, asi que ese debe ser tu > problema, proba con: > > "c:\\mis imagenes" > > > > Yo no uso las SQLTables asi que no podria > asegurar si esto se aplica. > > > > GB > > ----- Original Message ----- > > From: ggvigo > > To: guvoaII@... > > Sent: Friday, June 16, 2006 7:29 PM > > Subject: [guvoaII]
MySQL - Grabar en una > SQLTable > > > > Tengo una estructura en MySQL como la siguiente > > User_Clave Char 10 > User_Name char 30 > User_PathImagen char 250 > User_Imagen blob > > > Si tengo un numero como 1112811565 solo > puedo asignarlo al campo User_Clave como: > > SELF:Server:Append() > SELF:Server:User_Clave:=STRIN(_CAST,"1112811565") > > === message truncated ===
Claudio G. Torrillo www.clipsupp.com.ar
___________________________________________________________
1GB gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo http://correo.yahoo.com.ar
LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
Gustavo,
Como te dije anteriormente, al utilizar SQLStatment o
SQLSlect, debes pasar los parámetros como los debe
interpretar el ODBC.
Ergo, el ? debe ser reemplazado en la cadena INSERT
INTO ... tal como si la escribieramos,o sea:
['V:\LOQUESEA.PPP'], caso contrario el ODBC vería:
INSERT INTO .... ( ...,V:\LOQUESEA.PPP,...)
Como podrás observar, no es lo que se espera.
En cuanto a que si lo toma luego de haber ingresado el
primer "RENGLON" no lo entiendo.
Por favor, para posteriores consultas especificá el
código completo, a veces 4 ojos ven más que 2.
Claudio Torrillo
www.xcsa.com.ar
--- Gustavo Vigo <ggvigo@...> escribió:
> Ok,
>
> Como se puede explicar lo siguiente,
> Cuando inicio la apertura de una Ventana y si la
> Tabla no tiene ningun registro, en el PostInit()
> escribo la siguiente porcion de codigo,
> ----------------------------------------
> // Si no hay registros grabamos el primero
> IF nReg = 0
> oStmt:= SQLStatement{"Insert into users (
>
User_Clave,User_DNI,User_Name,User_LastName,User_PathFoto,User_Categoria,User_Cl\
aveBack,User_Imagen
> ) VALUES (?,?,?,?,?,?,?,?)",MyConeccionSQL}
> IF !oStmt:Execute('1112811565','00000001','Gustavo
> Adolfo','Guzmán
> Vigo','V:\\Usuarios.bmp','ow','1112811565',cBuffer)
> oStmt:ErrInfo:ShowErrorMsg()
> //RETU SELF
> ENDIF
> oStmt:Commit()
> oStmt:FreeStmt(SQL_DROP )
> ENDIF
> -----------------------------------------
> Si colocara V:\\Usuarios.bmp como V:\Usuarios.bmp
> ( con un solo "\"), en la tabla se almacena
> V:Usuarios.bmp.
>
> Pero cuando agrego usuarios (cuando ya se ha
> grabado el primero), con las asignaciones:
>
> ---------------------------------------------------
> cPathFoto: = "v:\Usuarios.bmp"
> ................... o con
> .
> .
> oOD := OpenDialog{SELF, aExt[3]}
> oOD:SetFilter(aExt, aDesc, 1)
> oOD:Show()
> //
> SELF:cPathFoto:=AllTrim(oOD:FileName)
>
> No necesito cambiar el "\" con "\\", ya que se
> graba normalmente,
>
> Quisiera por favor, me hagan llegar sus
> comentarios y recomendacion de como debo hacer, para
> tener un buen resultado en el manejo de Tablas con
> instancias SQLSELECT.
>
> Especificamente, como puedo realizar relaciones
> entre multiples tablas en una misma pantalla (que al
> navegar por sus registros, en las demas listas se
> actualicen por su Llave clave).
>
> Estoy Utilizando MySQL 5.0
> ODBC 3.51
> y para diseñar las Tablas y Genrarlas
> automaticamente los utilitarios
>
> CASE STUDIO 2 version 2.23 y
> CASE FOXYSQL 1.1.0.1.2
>
> Saludos,
>
> GVigo
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> "[CSA] Claudio Torrillo" <clipsupp@...>
> escribió:
> v\:* {behavior:url(#default#VML);} o\:*
> {behavior:url(#default#VML);} w\:*
> {behavior:url(#default#VML);} .shape
> {behavior:url(#default#VML);}
> st1\:*{behavior:url(#default#ieooui) }
> Gustavo:
>
> Un secreto, esta forma de trabajar es
> lentíiiiiiiiiiisima.
> La mejor forma de hacer esto es con la sentencia
> SQL correspondiente:
>
> P.Ej:
>
>
> oAppend := SQLSelect{ “INSERT INTO nombre_tabla
>
(‘USER_CLAVE’,’USER_NAME’,’User_PathImage’,’USER_IMAGEN’)
> VALUES (?,?,?,?) }
>
> Con esto has preparado un commando listo para usar
> con parámetros, para llamarlo sólo debes hacer los
> siguiente:
>
> oAppend:Execute( [‘para01’],….[‘para02’])
>
> El problema es que debes expresar cada valor como
> lo espera el ODBC, o sea, si el valor es carácter,
> debe ser una cadena de caracteres, por eso [‘’], las
> simples o dobles dan igual.
>
> Ahora si utlizas un SQLTable, eso no es necesario,
> ya que precisamente dicha clase conoce a la
> perfección los tipos de datos de cada columna y
> entonces si podrás utilizar las asignaciones como
> con los dbServer, yo no lo aconsejo.
>
> SQL es bonito, pero necesita que los comando se
> escriban en forma muy clarita.
>
> Claudio Torrillo
> www.xcsa.com.ar
>
>
> ---------------------------------
>
> De: guvoaII@...
> [mailto:guvoaII@...] En nombre de
> Gustavo Vigo
> Enviado el: Sábado, 17 de Junio de 2006 10:06 p.m.
> Para: guvoaII@...
> Asunto: Re: [guvoaII] MySQL - Grabar en una SQLTable
>
>
> Ok...
>
> Funciona Perfecto,
>
> en cuanto a las comillas y al caracter "\"
>
> Estoy usando Mysql 5.0 y ODBC 3.51
>
> Gracias
>
> GVigo
>
>
> Gustavo Biasone <gb_guvoa@...> escribió:
>
> Para el primer caso proba con:
>
>
>
> SELF:Server:User_Clave := '"1112811565"'
>
> Esto es, primero comilla simple y luego la
> doble.
>
>
>
> Para el segundo caso, generalmente se usa el
> caracter "\" para ESCAPE, asi que ese debe ser tu
> problema, proba con:
>
> "c:\\mis imagenes"
>
>
>
> Yo no uso las SQLTables asi que no podria
> asegurar si esto se aplica.
>
>
>
> GB
>
> ----- Original Message -----
>
> From: ggvigo
>
> To: guvoaII@...
>
> Sent: Friday, June 16, 2006 7:29 PM
>
> Subject: [guvoaII] MySQL - Grabar en una
> SQLTable
>
>
>
> Tengo una estructura en MySQL como la siguiente
>
> User_Clave Char 10
> User_Name char 30
> User_PathImagen char 250
> User_Imagen blob
>
>
> Si tengo un numero como 1112811565 solo
> puedo asignarlo al campo User_Clave como:
>
> SELF:Server:Append()
> SELF:Server:User_Clave:=STRIN(_CAST,"1112811565")
>
>
=== message truncated ===
Claudio G. Torrillo
www.clipsupp.com.ar
___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar
Hola gente tengo un sistema en clipper 5.0 y me pide
mi cliente si se puede utilizar sobre linux o unix.
Creo que habia un compilador para linux alguno tiene
idea.
Desde ya muchas gracias
gabriel
____________________________________________________
Esa persona especial te espera en Yahoo! Encuentros.
¡Dejate encontrar!
http://ar.encuentros.yahoo.com/
Cuando inicio la apertura de una Ventana y si la Tabla no tiene ningun registro, en el PostInit() escribo la siguiente porcion de codigo,
----------------------------------------
// Si no hay registros grabamos el primero IF nReg = 0 oStmt:= SQLStatement{"Insert into users ( User_Clave,User_DNI,User_Name,User_LastName,User_PathFoto,User_Categoria,User_ClaveBack,User_Imagen ) VALUES (?,?,?,?,?,?,?,?)",MyConeccionSQL} IF !oStmt:Execute('1112811565','00000001','Gustavo Adolfo','Guzmán Vigo','V:\\Usuarios.bmp','ow','1112811565',cBuffer) oStmt:ErrInfo:ShowErrorMsg() //RETU SELF ENDIF oStmt:Commit() oStmt:FreeStmt(SQL_DROP ) ENDIF
-----------------------------------------
Si colocara V:\\Usuarios.bmp como V:\Usuarios.bmp ( con un solo
"\"), en la tabla se almacena V:Usuarios.bmp.
Pero cuando agrego usuarios (cuando ya se ha grabado el primero), con las asignaciones:
No necesito cambiar el "\" con "\\", ya que se graba normalmente,
Quisiera por favor, me hagan llegar sus comentarios y recomendacion de como debo hacer, para tener un buen resultado en el manejo de Tablas con instancias SQLSELECT.
Especificamente, como puedo realizar relaciones entre multiples tablas en una misma pantalla (que al navegar por sus registros, en las demas listas se
actualicen por su Llave clave).
Estoy Utilizando MySQL 5.0
ODBC 3.51
y para diseñar las Tablas y Genrarlas automaticamente los utilitarios
CASE STUDIO 2 version 2.23 y
CASE FOXYSQL 1.1.0.1.2
Saludos,
GVigo
"[CSA] Claudio Torrillo" <clipsupp@...> escribió:
Gustavo:
Un secreto, esta forma de trabajar es lentíiiiiiiiiiisima.
La mejor forma de hacer esto es con la sentencia SQL correspondiente:
P.Ej:
oAppend := SQLSelect{ “INSERT INTO nombre_tabla (‘USER_CLAVE’,’USER_NAME’,’User_PathImage’,’USER_IMAGEN’) VALUES (?,?,?,?) }
Con esto has preparado un commando listo para usar con parámetros, para llamarlo sólo debes hacer los siguiente:
oAppend:Execute( [‘para01’],….[‘para02’])
El problema es que debes expresar cada valor como lo espera el ODBC, o sea, si el valor es carácter, debe ser una cadena de caracteres, por eso [‘’], las simples o dobles dan
igual.
Ahora si utlizas un SQLTable, eso no es necesario, ya que precisamente dicha clase conoce a la perfección los tipos de datos de cada columna y entonces si podrás utilizar las asignaciones como con los dbServer, yo no lo aconsejo.
SQL es bonito, pero necesita que los comando se escriban en forma muy clarita.
De:guvoaII@... [mailto:guvoaII@...] En nombre de Gustavo Vigo Enviado el: Sábado, 17 de Junio de 2006 10:06 p.m. Para:guvoaII@... Asunto: Re: [guvoaII] MySQL - Grabar en una SQLTable
Ok...
Funciona Perfecto,
en cuanto a las comillas y al caracter "\"
Estoy usando Mysql 5.0 y ODBC 3.51
Gracias
GVigo
Gustavo Biasone <gb_guvoa@...>
escribió:
Para el primer caso proba con:
SELF:Server:User_Clave := '"1112811565"'
Esto es, primero comilla simple y luego la
doble.
Para el segundo caso, generalmente se usa el caracter "\" para ESCAPE, asi que ese debe ser tu problema, proba con:
"c:\\mis imagenes"
Yo no uso las SQLTables asi que no podria asegurar si esto se aplica.
Cuando inicio la apertura de una Ventana y si la Tabla no tiene ningun registro, en el PostInit() escribo la siguiente porcion de codigo,
----------------------------------------
// Si no hay registros grabamos el primero IF nReg = 0 oStmt:= SQLStatement{"Insert into users ( User_Clave,User_DNI,User_Name,User_LastName,User_PathFoto,User_Categoria,User_ClaveBack,User_Imagen ) VALUES (?,?,?,?,?,?,?,?)",MyConeccionSQL} IF !oStmt:Execute('1112811565','00000001','Gustavo Adolfo','Guzmán Vigo','V:\\Usuarios.bmp','ow','1112811565',cBuffer) oStmt:ErrInfo:ShowErrorMsg() //RETU SELF ENDIF oStmt:Commit() oStmt:FreeStmt(SQL_DROP ) ENDIF
-----------------------------------------
Si colocara V:\\Usuarios.bmp como V:\Usuarios.bmp ( con un solo
"\"), en la tabla se almacena V:Usuarios.bmp.
Pero cuando agrego usuarios (cuando ya se ha grabado el primero), con las asignaciones:
No necesito cambiar el "\" con "\\", ya que se graba normalmente,
Quisiera por favor, me hagan llegar sus comentarios y recomendacion de como debo hacer, para tener un buen resultado en el manejo de Tablas con instancias SQLSELECT.
Especificamente, como puedo realizar relaciones entre multiples tablas en una misma pantalla (que al navegar por sus registros, en las demas listas se
actualicen por su Llave clave).
Estoy Utilizando MySQL 5.0
ODBC 3.51
y para diseñar las Tablas y Genrarlas automaticamente los utilitarios
CASE STUDIO 2 version 2.23 y
CASE FOXYSQL 1.1.0.1.2
Saludos,
GVigo
"[CSA] Claudio Torrillo" <clipsupp@...> escribió:
Gustavo:
Un secreto, esta forma de trabajar es lentíiiiiiiiiiisima.
La mejor forma de hacer esto es con la sentencia SQL correspondiente:
P.Ej:
oAppend := SQLSelect{ “INSERT INTO nombre_tabla (‘USER_CLAVE’,’USER_NAME’,’User_PathImage’,’USER_IMAGEN’) VALUES (?,?,?,?) }
Con esto has preparado un commando listo para usar con parámetros, para llamarlo sólo debes hacer los siguiente:
oAppend:Execute( [‘para01’],….[‘para02’])
El problema es que debes expresar cada valor como lo espera el ODBC, o sea, si el valor es carácter, debe ser una cadena de caracteres, por eso [‘’], las simples o dobles dan
igual.
Ahora si utlizas un SQLTable, eso no es necesario, ya que precisamente dicha clase conoce a la perfección los tipos de datos de cada columna y entonces si podrás utilizar las asignaciones como con los dbServer, yo no lo aconsejo.
SQL es bonito, pero necesita que los comando se escriban en forma muy clarita.
De:guvoaII@... [mailto:guvoaII@...] En nombre de Gustavo Vigo Enviado el: Sábado, 17 de Junio de 2006 10:06 p.m. Para:guvoaII@... Asunto: Re: [guvoaII] MySQL - Grabar en una SQLTable
Ok...
Funciona Perfecto,
en cuanto a las comillas y al caracter "\"
Estoy usando Mysql 5.0 y ODBC 3.51
Gracias
GVigo
Gustavo Biasone <gb_guvoa@...>
escribió:
Para el primer caso proba con:
SELF:Server:User_Clave := '"1112811565"'
Esto es, primero comilla simple y luego la
doble.
Para el segundo caso, generalmente se usa el caracter "\" para ESCAPE, asi que ese debe ser tu problema, proba con:
"c:\\mis imagenes"
Yo no uso las SQLTables asi que no podria asegurar si esto se aplica.
Un secreto, esta forma de trabajar es lentíiiiiiiiiiisima.
La mejor forma de hacer esto es con la sentencia SQL
correspondiente:
P.Ej:
oAppend := SQLSelect{ “INSERT INTO nombre_tabla (‘USER_CLAVE’,’USER_NAME’,’User_PathImage’,’USER_IMAGEN’) VALUES (?,?,?,?) }
Con esto has preparado un commando listo
para usar con parámetros, para llamarlo sólo debes hacer los siguiente:
oAppend:Execute( [‘para01’],….[‘para02’])
El problema es que debes expresar cada
valor como lo espera el ODBC, o sea, si el valor es carácter, debe ser una
cadena de caracteres, por eso [‘’], las simples o dobles dan igual.
Ahora si utlizas un SQLTable, eso no es
necesario, ya que precisamente dicha clase conoce a la perfección los tipos de
datos de cada columna y entonces si podrás utilizar las asignaciones como con
los dbServer, yo no lo aconsejo.
SQL es bonito, pero necesita que los
comando se escriban en forma muy clarita.
De:guvoaII@... [mailto:guvoaII@...] En nombre de Gustavo Vigo Enviado el: Sábado, 17 de Junio de
2006 10:06 p.m. Para:guvoaII@... Asunto: Re: [guvoaII] MySQL -
Grabar en una SQLTable
Ok...
Funciona Perfecto,
en cuanto a las comillas y al caracter "\"
Estoy usando Mysql 5.0 y ODBC 3.51
Gracias
GVigo
Gustavo Biasone
<gb_guvoa@...> escribió:
Para el primer caso proba con:
SELF:Server:User_Clave := '"1112811565"'
Esto es, primero comilla simple y luego la doble.
Para el segundo caso, generalmente se usa el caracter
"\" para ESCAPE, asi que ese debe ser tu problema, proba con:
"c:\\mis imagenes"
Yo no uso las SQLTables asi que no podria asegurar si esto
se aplica.
1 – El problema es casi insalvable. Seguramente
el archivo mide más de 64Kb y tu pretende utilizar un MemoEdit para
visualizarlo. Había una vez … un ejemplo de TBrowse que implementaba un
visor de archivos de texto, si revisas el sitio The Oasis (creo que era sí)
busca ejemplos de TBrowse y seguro lo allarás.
2 – Hmmm, cuanta complicación para
tan poca cosa ;)
Creo que la lechuga no te deja ver el
bosque.
Pregunto, para qué una tabla exclusiva?
Que tiene que ver la impresora (en Windows no imprimes en forma directa, sino
por spooler) con el bloqueo desbloqueo del archivo, si el archivo es exclusivo,
como lo accede el Report?
CreateInstance? Para qué? Creo que te
fuiste de mambo con el Help. Además, NETERR!!! Hijo mío!!! Y el Status del
objeto DBServer?
A ver, que tal si hacemos esto.
1 – Creamos un archivo temporal
(como sea)
2 - Abrimos con DBServer( “eltemporal.dbf”
… ), ya que es temporal, la exclusividad viene de que nadie sabe como se
llama.
3 – Cargamos en el la cabacera de
los comprobantes a emitir.
4 - Disparamos el reporte y en el array de
DBFS (ver ayuda) le pasamos el objeto DBServer de la tabla temporal, con esto
el report utiliza el mismo y no pretende abrir un nuevo alias.
5 – Finalizada la impresión, que la
haremos en forma EXCLUSIVA, preguntamos al operador si todo a terminado
correctamente.
6 – Numeramos internamente los
comprobantes y punto.
Este procedimiento lo utilizo con éxito para
impresiones de varios cientos de comprobantes al mes y en tandas nunca
inferiores a los 20 o 30.
OJO, con las funciones de ceación dinámica
de objetos como CreateInstance(), no son tan efectivas como las propias clases.
Muchas veces pueden producir problemas de
difícil solución por lo aleatorio, no es recomendable su uso salvo en contadas
ocaciones.
Y ya que hablamos de los RPReport, Pablo:
El paso que el RPReport establece para el
body es dependiente del Font definido por defecto para el Reporte en general.
De todas formas, la forma más correcta de
imprimir un formulario con cuerpo limitado como una factura con un reporteador
de bandas como el RPReport es creando la paginación en el archivo.
A vuelo de pájaro sería algo como si para
imprimir un formulario creo una tabla para la cabecera con tantos registros
como páginas debo imprimir, a cada cabecera le doy un numero de página. Luego
tengo la tabla con los detalles, esta tabla tiene tantos registros por cada
cabecera como detalles admita el cuerpo del formulario. El reporte debe
recorrer los detalles y con un grupo por nro de página.
Espero que esto te ayude, sino avisame y
lo vemos en profundidad.
De:guvoaII@... [mailto:guvoaII@...] En nombre de lsantibanez73 Enviado el: Jueves, 15 de Junio de
2006 01:45 p.m. Para:guvoaII@... Asunto: [guvoaII] 1 OT, 2 REPORTES
Hola, saludos a todos. Me encuentro con dos dilemas:
1.- Mil disculpas por el OT, en clipper al intentar mostrar un archivo
*.prn y que es muy grande me sale un error que no lo puede procesar, al
parecer es un problema de memoria, alguna idea para superar esto.
2.- En CAVO 2.6, tengo una rutina que en un ciclo do while, imprime
facturas por lote, el reporte (ReportPro 2.11), está asociado a una
tabla temporal y exclusiva, la primera factura la imprime bien y cuando
pasa a la segunda, se cae. Po lo que veo el proceso es más rápido que
el buffer de la impresora, entonces cuando procesa el segundo registro
se encuentra que la tabla está ocupada, y no puedo controlar el !neterr
() ya que la tabla la instancio con CREATEINSTANCE.
Hay alguna forma de colocar un temporizador o algo parecido que, una
vez liberada la tabla del buffer de impresión, pueda procesar el
registro que sigue a continuación.
Tengo una estructura en MySQL como la siguiente
User_Clave Char 10
User_Name char 30
User_PathImagen char 250
User_Imagen blob
Si tengo un numero como 1112811565 solo
puedo asignarlo al campo User_Clave como:
SELF:Server:Append()
SELF:Server:User_Clave:=STRIN(_CAST,"1112811565")
no se puede usar:
SELF:Server:Append()
SELF:Server:User_Clave:="1112811565" , o tambien
SELF:Server:User_Clave:='1112811565'
Si tengo un ruta de acceso como "C:\mis imagenes"
NO puedo asignarlo al campo User_PathImagen como:
SELF:Server:User_Clave:="C:\mis imagenes"
¿Como puedo almacenar la ruta?
¿estoy haciendo algo incorrecto en el manejo y asignación de
variables?
Saludos,
GVigo
Tengo una estructura en MySQL como la siguiente:
User_Clave char 10
User_Name char 30
User_PathImagen char 250
User_Imagen blob 0
Para grabar realizo el sigueinte codigo:
1 SELF:Server:Append()
2 SELF:Server:User_Clave:=STRIN(_CAST,"1112811565")
3 SELF:Server:User_Name:="ggvigo"
4 SELF:Server:User_PathImagen:="C:\Imagenes"
5 SELF:Server:User_Imagen:= uValue
6 SELF:Server:Commit()
7 SELF:Server:Close()
NO FUNCIONA
En 2
SELF:Server:User_Clave:="1112811565"
SELF:Server:User_Clave:='1112811565'
La pregunta es, como puedo almacear en un campo char una cadena de
letras y caracteres especiales com \, : como es el caso de la linea
3 que no puedo grabar de ningun modo.
Saludos,
GVigo
2) Podrias usar el metodo callback RpReportEnded el cual es llamado (si existe en el owner del objeto RPReport) cuando la impresion termina, para actualizar algun flag global y que uses dentro del loop de impresion.
Tambien podrias usar un timer, que cada x segundos chequee si puede tener acceso exclusivo a esa tabla
Hola, saludos a todos. Me encuentro con dos dilemas: 1.- Mil disculpas por el OT, en clipper al intentar mostrar un archivo *.prn y que es muy grande me sale un error que no lo puede procesar, al parecer es un problema de memoria, alguna idea para superar esto.
2.- En CAVO 2.6, tengo una rutina que en un ciclo do while, imprime facturas por lote, el reporte (ReportPro 2.11), está asociado a una tabla temporal y exclusiva, la primera factura la imprime bien y cuando pasa a la segunda, se cae. Po lo que veo el proceso es más rápido que el buffer de la impresora, entonces cuando procesa el segundo registro se encuentra que la tabla está ocupada, y no puedo controlar el !neterr () ya que la tabla la instancio con CREATEINSTANCE. Hay alguna forma de colocar un temporizador o algo parecido que, una vez liberada la tabla del buffer de impresión, pueda procesar el registro que sigue a continuación.
Tendrias que capturar el evento del menu en MenuCommand. El evento generado contiene una referencia al objeto RichEdit, de esta manera podes saber su nombre :
METHOD MenuCommand(oMenuCommandEvent) CLASS SalesPolicy_Scrn
SUPER:MenuCommand(oMenuCommandEvent) //Put your changes here
Hola a todos. Solicito su ayuda en lo siguiente: (En CAVO 2.7b y windows XP Professional)
Tengo un Dialog Window que contiene sólamente 3 RichEdit que muestran información de sólo lectura. El usuario puede seleccionar texto con el mouse pero se requiere que pueda copiar al portapapeles el texto seleccionado (con click derecho o Ctrl+C) para luego pegar en word o cualquier editor de texto.
Probé una solución que me funcionó bien pero sólo para un RichEdit (llamado oDCRichEdit1 y mi DialogWindow se llama SalesPolicy_Scrn): Esta solución consistió en:
1.En la propiedad "Context Menu" de los RichEdits poner SimpleEditMenu el cual es un menu que sólo tiene las opciones Cortar, Copiar y Pegar. (Es de CLASS SimpleEditMenu INHERIT Menu ) (de GUI Classes)
2. Crear los métodos ClipboardCopy, ClipboardCut y ClipboardPaste bajo la clase SalesPolicy_Scrn que es mi DialoWindow. (Envio los tres métodos)
El problema es que en estos metodos necesariamente tengo que incluir exactamente el nombre del RichEdit que voy a usar y no he podido hacer que funcione con un RichEdit como variable, para que funcione en los tres RichEdits a la vez.
Gracias por la ayuda, Rafael Pinto
NOTA:A continuación los tres métodos mencionados.
METHOD ClipboardCopy() CLASS SalesPolicy_Scrn LOCAL oClipBoard AS ClipBoard oClipBoard:= ClipBoard{} oClipBoard:Insert( oSubScrn1:oDCRichEdit1:SelectedText ) oSubScrn1:oDCRichEdit1:Copy()
METHOD ClipboardCut() CLASS SalesPolicy_Scrn LOCAL oClipBoard AS ClipBoard
Hola, saludos a todos. Me encuentro con dos dilemas:
1.- Mil disculpas por el OT, en clipper al intentar mostrar un archivo
*.prn y que es muy grande me sale un error que no lo puede procesar, al
parecer es un problema de memoria, alguna idea para superar esto.
2.- En CAVO 2.6, tengo una rutina que en un ciclo do while, imprime
facturas por lote, el reporte (ReportPro 2.11), está asociado a una
tabla temporal y exclusiva, la primera factura la imprime bien y cuando
pasa a la segunda, se cae. Po lo que veo el proceso es más rápido que
el buffer de la impresora, entonces cuando procesa el segundo registro
se encuentra que la tabla está ocupada, y no puedo controlar el !neterr
() ya que la tabla la instancio con CREATEINSTANCE.
Hay alguna forma de colocar un temporizador o algo parecido que, una
vez liberada la tabla del buffer de impresión, pueda procesar el
registro que sigue a continuación.
Agradeceré sus comentarios, atte.
Larry Santibáñez Flores
Hola a todos. Solicito su ayuda en lo siguiente: (En CAVO 2.7b y
windows XP Professional)
Tengo un Dialog Window que contiene sólamente 3 RichEdit que
muestran información de sólo lectura.
El usuario puede seleccionar texto con el mouse pero se requiere que
pueda copiar al portapapeles el texto seleccionado (con click
derecho o Ctrl+C) para luego pegar en word o cualquier editor de
texto.
Probé una solución que me funcionó bien pero sólo para un RichEdit
(llamado oDCRichEdit1 y mi DialogWindow se llama SalesPolicy_Scrn):
Esta solución consistió en:
1.En la propiedad "Context Menu" de los RichEdits poner
SimpleEditMenu el cual es un menu que sólo tiene las opciones
Cortar, Copiar y Pegar. (Es de CLASS SimpleEditMenu INHERIT Menu )
(de GUI Classes)
2. Crear los métodos ClipboardCopy, ClipboardCut y ClipboardPaste
bajo la clase SalesPolicy_Scrn que es mi DialoWindow. (Envio los
tres métodos)
El problema es que en estos metodos necesariamente tengo que incluir
exactamente el nombre del RichEdit que voy a usar y no he podido
hacer que funcione con un RichEdit como variable, para que funcione
en los tres RichEdits a la vez.
Gracias por la ayuda,
Rafael Pinto
NOTA:A continuación los tres métodos mencionados.
METHOD ClipboardCopy() CLASS SalesPolicy_Scrn
LOCAL oClipBoard AS ClipBoard
oClipBoard:= ClipBoard{}
oClipBoard:Insert( oSubScrn1:oDCRichEdit1:SelectedText )
oSubScrn1:oDCRichEdit1:Copy()
METHOD ClipboardCut() CLASS SalesPolicy_Scrn
LOCAL oClipBoard AS ClipBoard
oClipBoard:= ClipBoard{}
oClipBoard:Insert( oSubScrn1:oDCRichEdit1:SelectedText )
oSubScrn1:oDCRichEdit1:Cut()
METHOD ClipboardPaste() CLASS SalesPolicy_Scrn