Page 1 of 2
Consulta SQL via TDolphin
Posted: Wed Jul 04, 2018 11:08 pm
by MarioG
Hola Gente
He guardado en un campo el siguiente texto: IDEAS & DESARROLLOS
Luego cuando lo recupero para mostrarlo en un SAY, se ve asi: IDEAS _DESARROLLOS
Cual es la forma de guardarlo o de recuperarlo
Gracias
Re: Consulta SQL via TDolphin
Posted: Thu Jul 05, 2018 12:14 am
by joseluisysturiz
Intenta con ClipValue2SQL( Val2Escape( tu_valor ) ), saludos...
Re: Consulta SQL via TDolphin
Posted: Thu Jul 05, 2018 2:11 pm
by MarioG
Gracias JL!
Ahora se vé así : IDEAS DESARROLLOS
Alguna función/metodo me está faltando porque en un xBrowse, que muestra el Query consultado, se ve correctamente
Re: Consulta SQL via TDolphin
Posted: Thu Jul 05, 2018 3:11 pm
by cmsoft
Hola Mario:
Hice la prueba en una base de datos que tengo y tanto en el Browse como en el Get me mustra bien el ampersand
Tengo la tabla definida con ENGINE=INNODB DEFAULT CHARSET=latin1 y el campo es un VARCHAR (40)
Tambien probé con otra tabla que tengo definida como ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci y obtuve el mismo resultado.
Grabo con la funcion SAVE de Tdolphin
Espero que te de alguna pista
Re: Consulta SQL via TDolphin
Posted: Thu Jul 05, 2018 8:16 pm
by MarioG
Gracias por tus datos CM
Mis tablas estan creadas como: CHARSET=utf8 y COLLATE=utf8_spanish_ci
Como comenté en el primer post tengo el siguiente Browse
Code: Select all
REDEFINE XBROWSE oBrwP ID BRW_XBRW OF oDlg AUTOSORT ;
COLUMNS "RazSocial", "CUIT" ;
HEADERS "RazSocial", "CUIT" ;
OBJECT ::oQVProv
Que muestra el dato tal como lo guardé mediante:
oData:oServer:Insert(...)
o cuando actualizo mediante
oData:oServer:SqlQuery( cQry )
Luego para mostrarlo en un say, lo recupero con, en este caso: oQryPrv:= hA:oConn:Query( "SELECT * FROM provclie WHERE id_prvcli="+cIDProv )
Y, el campo aludido me devuelve, tal lo comentado
Intenté usando la función que me pasó José Luis, pero me devuelve espacio donde esta el simbolo &
Tambien mne contactó Ariel Cagiao y me paso lo siguiente:
cVar:= "IDEAS & DESARROLLOS"
cSave:= StrToHexa( cVar )
cLoad:= HexaToStr( cSave )
? cVar, cSave, cLoad
En este caso no reconoce las funciones; uso Harbour 3.2
Probé con inclui HB_Str... no las reconoce
Re: Consulta SQL via TDolphin
Posted: Thu Jul 05, 2018 10:40 pm
by cmsoft
Prueba asi:
Code: Select all
oQryPrv:= hA:oConn:Query( "SELECT * FROM provclie WHERE id_prvcli="+cIDProv )
oQryPrv:nombre := "IDEAS & DESARROLLOS" // O como se llame el campo donde grabas el nombre del proveedor
oQryPrv:Save()
Y comenta como lo graba...
Re: Consulta SQL via TDolphin
Posted: Fri Jul 06, 2018 12:14 am
by MarioG
Voy para peor!
Puse el campo en blanco; paso las líneas que me sugeriste... y no guarda nada!!
Re: Consulta SQL via TDolphin
Posted: Fri Jul 06, 2018 11:41 am
by cmsoft
Mario:
Por favor prueba este codigo y comenta
Code: Select all
#include "fivewin.ch"
#include "XBROWSE.ch"
#include "Tdolphin.ch"
function Mario_test()
local oDlg, oBrw, oBot, oGet, base,cSql, oServer, oQry, oError
CONNECT oServer HOST "localhost" ;
USER "root" ;
PASSWORD "" ;
PORT 3306;
FLAGS 0;
DATABASE "test"
TEXT INTO cSql
CREATE TABLE IF NOT EXISTS `datos` (
`NOMBRE` VARCHAR(35) NOT NULL,
`CODIGO` INT(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`CODIGO`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
ENDTEXT
oServer:Execute(cSql)
oServer:Execute("INSERT INTO datos (nombre) VALUES (' ')")
oQry:= oServer:Query("SELECT * FROM datos ")
DEFINE DIALOG oDlg TITLE "Prueba browse " FROM 09,15 TO 28,135
oDlg:lHelpIcon := .f.
@ 02,080 XBROWSE oBrw DATASOURCE oQry SIZE 325,120 OF oDlg PIXEL ;
COLUMNS "codigo","nombre" HEADERS "Codigo","Nombre";
SIZES 100,400 AUTOSORT
@ 00,00 SAY oBrw:oSeek PROMPT "" OF oDlg PIXEL
oBrw:CreateFromCode()
@10,423 BUTTON oBot PROMPT "&Salir" OF oDlg SIZE 30,10 ACTION oDlg:End() PIXEL
ACTIVATE DIALOG oDlg CENTER
base:=oQry:GetRowObj()
DEFINE DIALOG oDlg TITLE "Prueba Get " FROM 09,15 TO 28,135
oDlg:lHelpIcon := .f.
@ 02,080 GET oGet VAR base:nombre SIZE 300,12 OF oDlg PIXEL
@10,423 BUTTON oBot PROMPT "&Salir" OF oDlg SIZE 30,10 ACTION oDlg:End() PIXEL
// Activo el dialog
ACTIVATE DIALOG oDlg CENTER
oQry:oRow := base
TRY
oServer:BeginTransaction()
oQry:Save()
oQry:Refresh(.t.)
oServer:CommitTransaction()
CATCH oError
MsgInfo("Error")
END TRY
return nil
Es muy basico, pero a mi me funciona bien y me muestra bien el ampersand
Cada vez que ejecutas el programa te agrega un nuevo registro, y te lo muestra en el browse y en el get. Ponle IDEAS & DESARROLLOS y comenta que hace
Re: Consulta SQL via TDolphin
Posted: Fri Jul 06, 2018 1:07 pm
by MarioG
Gracias por tu tiempo CM
En algo me estaré equivocando, lo veo y te cuento
Re: Consulta SQL via TDolphin
Posted: Sun Jul 08, 2018 6:14 pm
by nnicanor
Hola,
La presentacion correcta de _ tiene que ver con el codepage de idioma seleccionado de harbour y el de la base datos, lo solucionas asi y guardara correctamente los acentos y caracteres especiales:
REQUEST HB_CODEPAGE_ESWIN
REQUEST HB_LANG_ES
Function Main()
..
..
SET( _SET_CODEPAGE, "ESWIN" ) // Seleccionar idioma en Harbour
Set_MyLang( "es_MX" ) // Seleccionar el idioma en MYSQl
...
...
Saludos,
Re: Consulta SQL via TDolphin
Posted: Mon Jul 09, 2018 12:36 am
by MarioG
Muchas gracias Nicanor
No sabia de esto: Set_MyLang( "es_MX" ) // Seleccionar el idioma en MYSQl
Re: Consulta SQL via TDolphin
Posted: Sat Aug 15, 2020 1:32 pm
by MarioG
MarioG wrote:Muchas gracias Nicanor
No sabia de esto: Set_MyLang( "es_ES" ) // Seleccionar el idioma en MYSQl
Buenos dias
Usando MariaDB al compilar me devuelve error:
Error: Unresolved external '_HB_FUN_SET_MYLANG' referenced from D:\MIAPP\DEBUG\TCFGSYS.OBJ
Como la debo invocar?, o es suficiente con esto:
HB_LangSelect( "ESWIN" )
HB_SetCodePage( "ESWIN" )
Re: Consulta SQL via TDolphin
Posted: Sat Aug 15, 2020 2:00 pm
by acuellar
Mario
Yo utilizo éstos:
Code: Select all
HB_LANGSELECT( 'ESWIN' )
HB_SetCodePage("ESWIN")
HB_CDPSELECT("ESWIN")
Re: Consulta SQL via TDolphin
Posted: Sat Aug 15, 2020 2:37 pm
by MarioG
Gracias!
Me esta pasando un tema que hace rato no lo puedo solucionar, y tiene que ver con datos en Tablas
Escribo en una variable, por ej., "Ideas & Desarrollos"
Luego el SAY me muestra "Ideas _Desarrollos"
He probado con varias funciones, como por ej. HB_Str2UTF8(), u otras y no le encuentro la solución
Por eso intenté probar Set_MyLang()
Pruebo y comento...
Re: Consulta SQL via TDolphin
Posted: Sun Aug 16, 2020 6:52 am
by nageswaragunupudi
MarioG wrote:Gracias!
Me esta pasando un tema que hace rato no lo puedo solucionar, y tiene que ver con datos en Tablas
Escribo en una variable, por ej., "Ideas & Desarrollos"
Luego el SAY me muestra "Ideas _Desarrollos"
He probado con varias funciones, como por ej. HB_Str2UTF8(), u otras y no le encuentro la solución
Por eso intenté probar Set_MyLang()
Pruebo y comento...
We are sorry we did not provide the correct solution 2 years back when you first raised the issue.
This has nothing to do with MySql or DBF. Nothing to do with any language or codepage settings.
This is just the default behaviour of TSay class (which, in turn, uses Windows static control) to display the text. By default, when '&' is found in a string, the '&' is ommitted and next character is underlined.
We can display '&' as expected by
(1) put '&&' instead of single '&'
OR
(2) Add the style SS_NOPREFIX ( 0x80 ) to the Say object.
This sample shows the default behaviour:
Code: Select all
#include "fivewin.ch"
function Main()
local oWnd, oSay, cText
cText := "IDEAS & DESARROLLOS"
DEFINE window oWnd
@ 30,50 SAY oSay PROMPT cText SIZE 200,20 PIXEL OF oWnd
ACTIVATE WINDOW oWnd CENTERED
return nil
This test shows if we add SS_NOPREFIX style:
Code: Select all
#include "fivewin.ch"
#define SS_NOPREFIX 0x00000080
function Main()
local oWnd, oSay, cText
cText := "IDEAS & DESARROLLOS"
DEFINE window oWnd
@ 30,50 SAY oSay PROMPT cText SIZE 200,20 PIXEL OF oWnd
oSay:WinStyle( SS_NOPREFIX, .t. ) // inserted
ACTIVATE WINDOW oWnd CENTERED
return nil
If you are using dialogs from resources, please try adding SS_NOPREFIX to the style of the control.