Jump to content
Fivewin Brasil

Primeiros Passos SQL


evertonlb

Recommended Posts

Pessoal.. eu li vários tópicos e dúvidas, mas não consegui dar o ponta pé inicial...

Tô usando DBF em alguns softwares e MySql com SqlLib em outro, mas sempre usando comandos DBF
Tenho o FW 19.05 e o xHb 1.2.3
Nessa atualização a SQLLib não funciona, então gostaria de ir de vez para acessos nativos e comandos SQL.

Pelo o que entendi o xHb tem acesso com a SQLRDD (que não achei no meu hd) e parece que o FW também tem funções e comandos SQL..
To certo ou estou errado??

Procurei o comando/função de conexão ao BD.. e não achei!

Bom.. to agradecendo qualquer dica!!
 

Link to comment
Share on other sites

Everton. Funciona sim

A versão do Five ai não tem nenhuma interferência no funcionamento da Sqllib. Quem determina isso é o xHarbour utilizado e pelo que vc postou ai é o 1.2.3 que é compatível com a sqllib.

Mas utilizar os comandos nativos é sempre a melhor opção e como o Ale disse acima se esta versão já contempla o Sql nativo no Five seria melhor já utilizar o que Five esta disponibilizando já que terá que trocar sua maneira de trabalhar de dbf para Sql.

 

Link to comment
Share on other sites

8 horas atrás, Marca disse:

Everton. Funciona sim

A versão do Five ai não tem nenhuma interferência no funcionamento da Sqllib. Quem determina isso é o xHarbour utilizado e pelo que vc postou ai é o 1.2.3 que é compatível com a sqllib.

Mas utilizar os comandos nativos é sempre a melhor opção e como o Ale disse acima se esta versão já contempla o Sql nativo no Five seria melhor já utilizar o que Five esta disponibilizando já que terá que trocar sua maneira de trabalhar de dbf para Sql.

 

Mesmo??  Eu tentei compilar com a sqllib_xHB_121_rev6717 e me deu uma pancada de erros...   Vou tentar de novo hoje..

 

Link to comment
Share on other sites

15 horas atrás, sygecom disse:

Se poder fuja do SQLRDD, use comandos SQL nativo, tem as lib do próprio xHarbour/harbour também pra uso com SQL direto, no Harbour tem o SQLMIX que aceita alguns comando xbase e o resto SQL.

É isso que eu quero, usar os comandos SQL..
Uso o xHb..  vou ver estes comandos... 
Obrigado!

 

Link to comment
Share on other sites

  • 4 weeks later...

Boa tarde eu uso assim,eu acho prático, me deram a dica aqui no grupo:

Pego os dados "oLloyds:Fields("tSaoCte"):Value" , e neste caso os transfiro para uma planilha "oSheetPr:Cells(4,2):value:=oLloyds:Fields("tSaoCte"):Value"

.....

 ABRE_SQL()

    cCmdSql:="select sum(SaoCte) as tSaoCte,sum(SaoVol) as tSaoVol,sum(SaoM3) as tSaoM3,sum(SaoFrete) as tSaoFrete, "+;
                "sum(RioCte) as tRioCte,sum(RioVol) as tRioVol,sum(RioM3) as tRioM3,sum(RioFrete) as tRioFrete, "+;
                "sum(BhzCte) as tBhzCte,sum(BhzVol) as tBhzVol,sum(BhzM3) as tBhzM3,sum(BhzFrete) as tBhzFrete "+;
                "from LLOYDS_CTE "+;
                "where DtEmissao >= '"+data_sql(c1101)+"' and DtEmissao <= '"+data_sql(c1102)+"'"

    try
        oLloyds := oCon:Execute(cCmdSql)
    catch oErr
      msginfo( "Erro ao abrir Tabela LLOYDS_CTE","ATENÇÃO" )
        return(.f.)
   end

    oSheetPr:Cells(4,2):value:=oLloyds:Fields("tSaoCte"):Value
    oSheetPr:Cells(4,3):value:=oLloyds:Fields("tSaoVol"):Value
    oSheetPr:Cells(4,4):value:=oLloyds:Fields("tSaoM3"):Value
    oSheetPr:Cells(4,5):value:=oLloyds:Fields("tSaoFrete"):Value

    oSheetPr:Cells(5,2):value:=oLloyds:Fields("tRioCte"):Value
    oSheetPr:Cells(5,3):value:=oLloyds:Fields("tRioVol"):Value
    oSheetPr:Cells(5,4):value:=oLloyds:Fields("tRioM3"):Value
    oSheetPr:Cells(5,5):value:=oLloyds:Fields("tRioFrete"):Value
    
    oSheetPr:Cells(6,2):value:=oLloyds:Fields("tBhzCte"):Value
    oSheetPr:Cells(6,3):value:=oLloyds:Fields("tBhzVol"):Value
    oSheetPr:Cells(6,4):value:=oLloyds:Fields("tBhzM3"):Value
    oSheetPr:Cells(6,5):value:=oLloyds:Fields("tBhzFrete"):Value
    
...
    FECHA_SQL()    
    
    
function ABRE_SQL()
* Server = nome do servidor ou seu IP
* Database = nome do seu BD
* Uid = usuário
* Pwd = senha

   cConnection := "driver={SQL Server};Server=xxx.xxx.xxx.xxx;Database=NONAME;Uid=nonane;Pwd=noname"
   try
      oCon:=tOleAuto():new("ADODB.Connection")
      oCon:Open( cConnection )
   CATCH oError
      MsgInfo( "Problema com a conexão ao banco de dados!"  +CRLF+ ;
       "Error: "     + Transform(oError:GenCode,   nil) + ";" +CRLF+ ;
       "SubC: "      + Transform(oError:SubCode,   nil) + ";" +CRLF+ ;
       "OSCode: "    + Transform(oError:OsCode,    nil) + ";" +CRLF+ ;
       "SubSystem: " + Transform(oError:SubSystem, nil) + ";" +CRLF+ ;
       "Mensaje: "   + oError:Description, "Atenção" )
      return(.f.)
   end
return(.t.)

function FECHA_SQL()
   oCon:close()
return(.t.)

 

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...