Consulta SQL via TDolphin

User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Consulta SQL via TDolphin

Post 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
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Consulta SQL via TDolphin

Post by joseluisysturiz »

Intenta con ClipValue2SQL( Val2Escape( tu_valor ) ), saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post 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
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta SQL via TDolphin

Post 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
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post 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
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta SQL via TDolphin

Post 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...
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post by MarioG »

Voy para peor! :shock: :cry:
Puse el campo en blanco; paso las líneas que me sugeriste... y no guarda nada!!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta SQL via TDolphin

Post 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
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post by MarioG »

Gracias por tu tiempo CM
En algo me estaré equivocando, lo veo y te cuento
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
nnicanor
Posts: 296
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: Consulta SQL via TDolphin

Post 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,
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post by MarioG »

Muchas gracias Nicanor
No sabia de esto: Set_MyLang( "es_MX" ) // Seleccionar el idioma en MYSQl
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post 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" )
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Consulta SQL via TDolphin

Post by acuellar »

Mario

Yo utilizo éstos:

Code: Select all

 HB_LANGSELECT( 'ESWIN' )
 HB_SetCodePage("ESWIN")
 HB_CDPSELECT("ESWIN")
 
Saludos,

Adhemar C.
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Consulta SQL via TDolphin

Post 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...
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Consulta SQL via TDolphin

Post 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
 
Image

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
 
Image

If you are using dialogs from resources, please try adding SS_NOPREFIX to the style of the control.
Regards

G. N. Rao.
Hyderabad, India
Post Reply