Clipper On Line • Ver Tópico - Harbour ORM

Harbour ORM

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Harbour ORM

Mensagempor Itamar M. Lins Jr. » 03 Mar 2021 11:12

Olá!
The ORM acronym stands for Object Relational Mapper. ORMs are a method to access and manipulate data using objects, instead of direct access to SQL backends or other data stores.
https://github.com/EricLendvai/Harbour_ORM
Já está funcional!
Para MariaDB/MySQL e PostgreSQL

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Harbour ORM

Mensagempor JoséQuintas » 03 Mar 2021 12:11

DbCreate(::p_CursorName,l_Structure,'SQLMIX',.T.,::p_CursorName,,"UTF8")


select (l_select)


Achei que ia ser interessante...
Mas vendo isso.... sei lá...

Talvez alguém pudesse dar uma olhada em VBMySQLDirect, é um fonte pra usar a DLL do MySQL como se fosse ADO, mas usando apenas a DLL.
Esse negócio de trabalhar igual DBF não dá certo.

Nota: apesar que agora parece difícil achar o fonte, devo ter em CDs antigos aqui.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Harbour ORM

Mensagempor Itamar M. Lins Jr. » 03 Mar 2021 12:36

Olá!
Esse negócio de trabalhar igual DBF não dá certo.

PRÉ CONCEITO!
Ele usa comandos do VFP, não viu os exemplos ?

oSQLConnection1 := hb_SQLConnect()
with object oSQLConnection1
    :SetBackendType("MariaDB")
    :SetUser("root")
    :SetPassword("rndrnd")
    :SetDatabase("test001")
    // :SetServer("127.0.0.1")
    iSQLHandle := :Connect()
    do case
    case iSQLHandle == 0
        ?"Already Connected"
    case iSQLHandle < 0
        ? :GetLastErrorMessage()
    otherwise
        ?"connection is",iSQLHandle
    endcase

    ?"MariaDB Get last Handle",:GetHandle()

...
REQUEST HB_CODEPAGE_UTF8

REQUEST SQLMIX , SDDODBC

#define HB_ORM_CURSOR_STRUCTURE_POS      1
#define HB_ORM_CURSOR_STRUCTURE_TYPE     2
#define HB_ORM_CURSOR_STRUCTURE_LEN      3
#define HB_ORM_CURSOR_STRUCTURE_DEC      4
#define HB_ORM_CURSOR_STRUCTURE_NULL     5
#define HB_ORM_CURSOR_STRUCTURE_AUTOINC  6
#define HB_ORM_CURSOR_STRUCTURE_BINARY   7
#define HB_ORM_CURSOR_STRUCTURE_TRIM     8
#define HB_ORM_CURSOR_STRUCTURE_UNICODE  9
#define HB_ORM_CURSOR_STRUCTURE_COMPRESS 10

//=================================================================================================================
class hb_orm_Cursor
    hidden:
        data p_CursorName             init ""
        data p_Fields                 init {=>}   //Key is the FieldName, {cFieldType,nFieldLen,nFieldDec,lAllowNull,lIsAutoIncrement,lBinary,lTrimmed,lUnicode,lCompressed}
                                                  //Using flags for the extended attributes for performance reason mainly
        data p_AutoIncrementLastValue init 0      //If more than one field is marked as AutoIncrement, the value will be unique across all of them.
        data p_FieldsForAppend        init {}     //To make it faster during AppendBlank(), since only care to process certain fields
        data p_Indexes                init {=>}   //Key is the TagName, {cExpression,lUnique}
                                                  //      Future plans: {cExpression,lUnique,cDirection ("A"scending/"D"esending),cForExpression}

        method UpdateRecordCount()                /


Apenas não perdeu tempo reinventando a roda, usa o SQLMIX para trazer o resultado. Não tem nada de DBF.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Harbour ORM

Mensagempor Itamar M. Lins Jr. » 03 Mar 2021 12:45

Olá!
Alias SQLMIX não tem nada de DBF.
Se ele colocasse a extensão do resultado ResultSet_Array, dava no mesmo.
No fim só podemos usar comandos SQL para ler e gravar. Já falei sobre isso N vezes.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Harbour ORM

Mensagempor JoséQuintas » 03 Mar 2021 13:52

Enquanto ainda uso Windows, vou só de ADO mesmo.

cnSQL := win_OleCreateObject( "ADODB.Connection" )
cnSQL:ConnectionString := "blablabla"
cnSQL:Open()
Temp := cnSQL:Execute( "SELECT ... FROM ..." )
DO WHILE ! Temp:Eof()
   Temp:MoveNext()
ENDDO
Temp:Close()
cnSQL:Close()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 15 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro