Página 1 de 1

xharbour com mysql

Enviado: 20 Mar 2005 23:49
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

Enviado: 21 Mar 2005 01:23
por Dudu_XBase
Movido para a seção Xharbour do Fórum.

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

Enviado: 08 Out 2007 18:12
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

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

Enviado: 08 Out 2007 18:25
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.

Enviado: 08 Out 2007 18:51
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. :)

Enviado: 09 Out 2007 10:39
por alaminojunior
:{ salve ó mestre filósofo Maligno :{

Enviado: 25 Out 2007 09:17
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

Enviado: 25 Out 2007 09:54
por vailton
Qual a msg de erro?!

Enviado: 25 Out 2007 09:59
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 !