xharbour com mysql

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

culik

xharbour com mysql

Mensagem por culik »

Ola

lembro que vi uma mensagem de exemplo de xharbour+mysql

entao ai vai


#include "sqlrdd.ch"

#define RECORDS_IN_TEST 1000
#define SQL_DBMS_NAME 17
#define SQL_DBMS_VER 18

/*------------------------------------------------------------------------*/

Function Main( cDSN, lLog )

/* CODE_IS is the primary key 1st key. See SQLRDD.CH for details about structure array */

local aStruct := {{"CODE_ID","C",8,0,.F.,,,,,1 },{"CARDID","C",1,0},{"DESCR","C",50,0},{"PERCENT","N",10,2},{"DAYS","N",8,0},{"DATE_LIM","D",8,0},{"ENABLE","L",1,0},{"OBS","M",10,0}, {"VALUE","N",18,6}}
local nCnn, i, s

? ""
? "demo.exe"
? ""
? "Small SQLRDD demo"
? "(c) 2003 - Marcelo Lombardo"
? ""

Connect( cDSN ) // see connect.prg

? "Connected to :", SR_GetConnectionInfo(, SQL_DBMS_NAME ), SR_GetConnectionInfo(, SQL_DBMS_VER )

If lLog != NIL
? "Starting LOG", SR_GetActiveConnection(), SR_StartLog()
endif

// SR_SetSyntheticIndex(.t.)

? "Creating table :", dbCreate( "TEST_TABLE", aStruct, "SQLRDD" )

USE "TEST_TABLE" SHARED VIA "SQLRDD"

? "Table opened. Alias :", select(), alias(), RddName()
? "Fieldpos( CODE_ID ) :", Fieldpos( "CODE_ID" )
? "Fieldpos( DESCR ) :", Fieldpos( "DESCR" )

? "Creating 02 indexes..."

s := seconds()

Index on CODE_ID+DESCR to TEST_TABLE_IND01
Index on str(DAYS)+dtos(DATE_LIM) to TEST_TABLE_IND02

? "Done, Elapsed time :", seconds() - s, "seconds"
? ""

? "Appending " + alltrim(str(RECORDS_IN_TEST)) + " records.."

s := seconds()

For i = 1 to RECORDS_IN_TEST
Append Blank
Replace CODE_ID with strZero( i, 5 )
Replace DESCR with dtoc( date() ) + " - " + time()
Replace DAYS with (RECORDS_IN_TEST - i)
Replace DATE_LIM with date()
Replace ENABLE with .T.
Replace OBS with "This is a memo field. Seconds since midnight : " + alltrim(str(seconds()))
Next

? "Done, Elapsed time :", seconds() - s, "seconds"
? ""

? "dbClearIndex() :", dbClearIndex()
? "dbCloseArea() :", dbCloseArea()

? ""
? "Press any key to open the table"

inkey(0)

USE "TEST_TABLE" SHARED VIA "SQLRDD"

? "Opening Indexes"
SET INDEX TO TEST_TABLE_IND01
SET INDEX TO TEST_TABLE_IND02 ADDITIVE

? "Set Order to 1 :", OrdSetFocus(1)
? "Seek :", dbSeek( "00002" )

? "found() :", found()
? "Recno(),bof(),eof() :", recno(), bof(), eof()
? "dbUnLock() :", dbUnLock()
? "RLock(), dbRLockList:", rlock(), sr_showVector( dbRLockList() )
? "Writes to the WA :", FIELD->DESCR := "Hello, SQL!", FIELD->PERCENT := 23.55
? "dbCommit() :", dbCommit()
? " "
? "Press any key to browse()"

inkey(0)
clear

browse(row()+1,1,row()+20,80)

clear

? "Order 2, key is :", OrdSetFocus(2), ordKey()

OrdScope( 0, str(RECORDS_IN_TEST / 4,8) )
OrdScope( 1, str(RECORDS_IN_TEST / 2,8) )

? "TOP Scope :", OrdScope( 0 )
? "BOTTOM Scope :", OrdScope( 1 )

? "Press any key to browse() with another index and scope"
inkey(0)
dbGoTop()
clear
browse(row()+1,1,row()+20,80)

Return NIL


#include "pgs.ch" // Needed if you plan to use native connection to Postgres
#include "mysql.ch" // Needed if you plan to use native connection to MySQL
#include "oracle.ch" // Needed if you plan to use native connection to Oracle
#include "firebird.ch" // Needed if you plan to use native connection to Firebird

REQUEST SQLRDD // SQLRDD should be linked in
REQUEST SR_ODBC // Needed if you plan to connect with ODBC
REQUEST SR_PGS // Needed if you plan to use native connection to Postgres
REQUEST SR_MYSQL // Needed if you plan to use native connection to MySQL
REQUEST SR_ORACLE // Needed if you plan to use native connection to Oracle
REQUEST SR_FIREBIRD // Needed if you plan to use native connection to Firebird

REQUEST DBFNTX
REQUEST DBFCDX
REQUEST DBFFPT
REQUEST DBFDBT

/*------------------------------------------------------------------------*/

Function Connect( cDatabase )

local nCnn, nDrv, cDriver, nOpt, nDetected, hIniFile, aKeys, nKey, cConnString
local oldScreen, hDsn

hIniFile := HB_ReadIni( "sqlrdd.ini", .F.,,.F. ) // Read ini file in a hash table

If hIniFile == NIL
? "Could not read from sqlrdd.ini"
Quit
EndIf

If cDatabase == NIL
aKeys := HGetKeys( hIniFile )
If len(aKeys) == 0
? "No connections available in sqlrdd.ini"
Quit
ElseIf len(aKeys) == 1
nKey := 1
Else
clear screen
@5,1 say PadC( "Choose connection option", 80 )
nKey := achoice( 7, 20, 20, 60, aKeys )
clear screen

If nKey == 0
? "No connection selected"
Quit
EndIf
EndIf

hDsn := HGetValueAt( hIniFile, nKey )

If !"CONNSTRING" IN hDsn
? "ConnString not found in " + aKeys[nKey]
Quit
EndIf
Else
If ! cDatabase IN hIniFile
? "Connection [" + cDatabase + "] not found in sqlrdd.ini"
Quit
EndIf

hDsn := hIniFile[ cDatabase ]

If !"CONNSTRING" IN hDsn
? "ConnString not found in " + cDatabase
Quit
EndIf

EndIf

cConnString := hDsn[ "CONNSTRING" ]
nDetected := DetectDBFromDSN( cConnString )

If nDetected > SYSTEMID_UNKNOW
? "Connecting to", cConnString
nCnn := SR_AddConnection( nDetected, cConnString )
Else
clear screen
nOpt := Alert( "Please, select connection type", { "ODBC", "Postgres", "MySQL", "Oracle", "Firebird" } )
If nOpt > 0
nCnn := SR_AddConnection( If( nOpt = 1, CONNECT_ODBC, if( nOpt = 2, CONNECT_POSTGRES, if( nOpt = 3, CONNECT_MYSQL, if( nOpt = 4, CONNECT_ORACLE, CONNECT_FIREBIRD ) ) ) ), cConnString )
Else
? "No connection type selected"
Quit
EndIf
EndIf

/* returns the connection handle or -1 if it fails */
If nCnn < 0
? "Connection error. See sqlerror.log for details."
Quit
EndIf

Return .T.


Esse exemplo acima e um dos exemplos do xharbour comercial+sqlrdd e nao apenas conecta ao mysql(nativo/odbc) mais tambem a todos os bancos de dados existente no mercado como postgres(nativo/odbc),firebird(nativo/odbc),interbase(nativo/odbc),oracle(nativo/odbc) ,mssql server(odbc) , dbc(odbc) e todos os demais bancos do mercado via odbc

para testarem esse programa, voce podem fazer o download do demo em www.xharbour.com.br

Atenciosamente
Luiz
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Movido para a seção Xharbour do Fórum.


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




CGSahle
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 08 Out 2007 17:35
Localização: Santa Rita do Passa quatro - SP

Lê o N. do HD abre se for igual e é difícil de ser lido.

Mensagem por CGSahle »

FUNCTION TRAVA
LOCAL TRAVA
SET CURSOR OFF
! VOL>TRAVA2
ARQUIVO := "TRAVA2"
MEMOFILE := MEMOREAD (ARQUIVO)
! DEL TRAVA2
MEMOFILE = MEMOLINE(MEMOFILE,,3)
STRING=SPAC(09)
VSTRING(STRING)
IF AT(STRING,MEMOFILE) = 0
QUADRO()
@ 10,07,14,73 BOX 'ÚÄ¿³ÙÄÀ³ '
@ 11,28 SAY "PROGRAMA NŽO AUTORIZADO"
@ 12,26 SAY "CONSULTE SUPORTE T
CGSahle
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 08 Out 2007 17:35
Localização: Santa Rita do Passa quatro - SP

Movido para a seção Xharbour do Fórum.

Mensagem por CGSahle »

Uma da pragas do Egito foi a nuvem de gafanhotos.
E eis que alguém olhou para o ceu e eram tantos os gafanhotos que cobriram o Sol e a terra fiocu escura.
Alguém perguntou: - O que é isso, como resolver o problema?
Algum entendido respodeu: - Isso aconteceu porque cortaram as árvores, onde os pássaros migram para cá, e com os pássaros havia o equilíbrio. Nos devemos replantar as árvores para que os pássaros voltem e resolvam o problema.
Outra pessoa respondeu: - Até aí tudo bem, mas a questão é o que fazer agora, no futuro tudo bem, mas olhem para o céu e esses gafanhotos que estão chegando?
Esses gafanhotos comparando, são os bandidos e a criminalidade que já estão no Brasil. Pode-se fazer algo para o futuro, mas a atitude agora tem quer rápida e prá valer.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Não acredito na real necessidade de limpar a memória, uma vez que os traços pertinentes ao programa desaparecerão quando o seu fim chegar. Todos nós sabemos que não há programa eterno. Um dia, por mais que tarde, chegará o momento em que ele perecerá. Nada se mantém vivo pra sempre. E quando as forças do imponderável se fizerem presentes, a memória se tornará uma vaga lembrança de um (talvez) glorioso passado que não mais voltará, até que se ative uma nova instância da aplicação. Assim corre a vida: ao apocalíptico se segue a gênese de uma nova e (talvez) atualizada entidade. E o ciclo se renova.

Em tempo: meu cachorro não tem pulgas. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

:{ salve ó mestre filósofo Maligno :{
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

O que pode estar dando errado aqui [sqlrdd]

linkei as seguintes lib´s

oci.lib
libmysq.lib
sql.lib

Código: Selecionar todos

func main()

#include "sqlrdd.ch"
#include "mysql.ch"
REQUEST SQLRDD
REQUEST SR_MYSQL   
REQUEST DBFCDX



priv mysql
cConnString =MySQL="127.0.0.1";UID="root";PWD="eder";DTB="teste"

if SR_ADDCONNECTION(CONNECT_MYSQL,cConnString )== -1
   msginfo("sem conexao")
else
   msginfo("conexão realizada")
endif   

O que ha de errado no codigo a cima pois ñ consigo me conectar no DB nem com reza brava , com a mysqlfree estava dando certo , então posso excluir a ipótese de ter algo errado com o DB mysql

imagino que seja algum erro em meu codigo .... :f
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
vailton
Colaborador
Colaborador
Mensagens: 390
Registrado em: 17 Nov 2005 19:08
Localização: Brasil
Contato:

Mensagem por vailton »

Qual a msg de erro?!
Vailton Renato
"No dia mais claro, na noite mais escura... o bug sucumbirá ante a minha presença"

E-mail/MSN: contato@vailton.com.br
Skype: vailtom
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Simplesmente não tem msg de erro , apenas não conect

Sempre retonar -1

e aparece msginfo("som conexão")


meu codigo esta errado ??

as libs que linkey estão corretas ??

Pois quanto a isso não ha nenhuma msg de erro !
C:\Xharbour\Xdev\Fw\VSX
Responder