Mysql al posto di DBF come?

45 views
Skip to first unread message

Mimmo Italia

unread,
Jan 21, 2013, 7:21:32 AM1/21/13
to harbo...@googlegroups.com
Salve,
Volevo una dritta per ambiente (x)Harbour - Minigui con utilizzo Mysql al posto di DBF cosa mi consigli ?
Ti dico che Ho provato rdd Mediator otc, tutto sommato qualche compromesso funziona.
Grazie.
Saluti Mimmo.


Massimo Belgrano

unread,
Jan 21, 2013, 8:51:22 AM1/21/13
to harbo...@googlegroups.com
Nei metodi interni a harbour trovi

1) hbmysql classe di accesso a wrapper a mysql
C:\harbour\contrib\hbmysql\tests
   oServer := TMySQLServer():New( "localhost", "root", "" )
    oServer:SelectDB( "ims" )
   oQuery := oServer:Query( "SELECT * from maga limit 10" )
   oRow := oQuery:GetRow()

2) rdd sddmy  RDDSQL MySQL backend
C:\harbour\contrib\sddmy\tests
essendo rdd puoi usare la browse
ma devi creare un interfaccio per scrivere i dati o rdare rddi_execute con isert into
#require "rddsql"
#require "sddmy"
REQUEST SDDMY, SQLMIX
ANNOUNCE RDDSYS
PROCEDURE Main()
   rddSetDefault( "SQLMIX" )
   AEval( rddList(), {| x | QOut( x ) } )
   IF rddInfo( RDDI_CONNECT, { "MYSQL", "localhost", "test", , "test" } ) == 0
   ? rddInfo( RDDI_EXECUTE, "DROP TABLE country" )
   ? rddInfo( RDDI_EXECUTE, "CREATE TABLE country (CODE char(3), NAME char(50), RESIDENTS int(11))" )
   Inkey( 0 )
   dbUseArea( .T., , "SELECT * FROM country", "country" )
   Browse()
   dbCloseAll()

   RETURN

Mediator funziona come rdd completo
qundi prendi un vecchio programma
e cambi poche righe 
ha il limite di una sola connection attiva

Usa l'ottimo reference
http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-complete-functions-list.htm

questa la mia raccolta
https://docs.google.com/document/d/1HKSB9igyS8fBCZzL2enoXrgc9i4DHpItqVp149h5mS0/edit#bookmark=id.uww29hb2q6uj




--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msg/harbourITA/-/LlKx5yL0o00J.
Per postare messaggi in questo gruppo, invia un'email a harbo...@googlegroups.com.
Per annullare l'iscrizione a questo gruppo, invia un'email a harbourITA+...@googlegroups.com.
Per ulteriori opzioni, visita il gruppo all'indirizzo http://groups.google.com/group/harbourITA?hl=it.



--
Massimo Belgrano

Delta Informatica S.r.l. (http://www.deltain.it/) (+39 0321 455962)
Sviluppo software per Lan e Web -  Consulenza informatica - Formazione -Grafica Aziendale - Siti Web Intereattivi

Massimo Belgrano

unread,
Jan 21, 2013, 9:02:04 AM1/21/13
to harbo...@googlegroups.com
Questo il modo di usare
la reference di tutte le funzioni di harbour
http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-complete-functions-list.htm
Premi Alt f e cerca oggi "mysql" domani "cosatuvuoi"  e scorri

Immagine in linea 1


Il giorno 21 gennaio 2013 13:21, Mimmo Italia <mimmo....@gmail.com> ha scritto:

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msg/harbourITA/-/LlKx5yL0o00J.
Per postare messaggi in questo gruppo, invia un'email a harbo...@googlegroups.com.
Per annullare l'iscrizione a questo gruppo, invia un'email a harbourITA+...@googlegroups.com.
Per ulteriori opzioni, visita il gruppo all'indirizzo http://groups.google.com/group/harbourITA?hl=it.



--
Massimo Belgrano


image.png

Mimmo Italia

unread,
Jan 21, 2013, 11:09:29 AM1/21/13
to harbo...@googlegroups.com
Grazie per il consiglio. Provero' i vari metodi, volevo sapere piu' precisamente nella campi Memo si ha la possibilita di inserire allegati di vari grandezze.
Grazie.
MImmo.

Massimo Belgrano

unread,
Jan 21, 2013, 12:59:21 PM1/21/13
to harbo...@googlegroups.com
Sempre ammesso che non memorizzi solo il percorso come + nativo per harbour

So che Marcelo de Paula usa tecniche simili con file  DOC  ed è quasi  come ti interessa
Credo che servano LONGTEXT o LONGBLOB che occupa + spazio
e ispirazioni prese 
Se raggiungi un risultato , posta una demo con la base dei tuoi sorgenti che puo aiutare anche  altri utenti a percorrere la strada


para Salvar:
         Local cQuery
         Local cLocal:='c:\Documento.DOC'
*        // Inclui se ainda não existir
         cQuery:="INSERT INTO tb_documento (dc_codigo, dc_anexo, dc_sequencia) VALUES ("
         cQuery+=ClipValueSQL2(Limpa_Campo(FormTabelas.TextID.Value))    +" ,"
         cQuery+=ClipValueSQL2(MaskBinData(MemoRead(cLocal)))                 +" ,"
         cQuery+=ClipValueSQL2(FormTabelas.TextSQ.Value)                          +" )"
         oQuery := oServer:Query( cQuery )
         If oQuery:NetErr()
            MsgInfo("SQL INSERT error:Anexo1 " + oQuery:Error(),"Procedimentos")
            Return
         Endif

Para Ler:
 
Static Function EditarDoc_Fic(QueroVer)
         Local cQuery
         Local oWord, oTexto, sPrint
         Local cDoc:='c:\windows\temp\temp.doc'
         cQuery:="SELECT * FROM tb_documento WHERE dc_codigo = "+ClipValueSQL2(Limpa_Campo(FormTabelas.TextID.Value))
         cQuery+=" AND dc_sequencia = "+ClipValueSQL2(FormTabelas.TextSQ.Value)
         oQuery := oServer:Query( cQuery )
         If oQuery:NetErr()
              MsgInfo("SQL SELECT error:Documentos " + oQuery:Error(),"Procedimentos")
              Return
         Endif
         If oQuery:LastRec()>0
             oRow := oQuery:GetRow(1)
             MemoWrit( cDoc , UnMaskBinData( oRow:FieldGet(2) ) )
             oQuery:Destroy()
         EndIf
         Return
 
As Funções
 
*===============================================================================
* // Troca Caracteres especias para gravar no Banco
Function MaskBinData( x )                && Não lembro quem fez
      x := StrTran( x , chr(92) , '(92)' )
      x := StrTran( x , chr(26) , '(26)' )
      x := StrTran( x , chr(39) , '(39)' )
      x := StrTran( x , chr(0)  , '(0)' )
      x := StrTran( x , chr(24) , '(24)' )
      return x
*===============================================================================
* // Restaura Caracteres especiais para construir imagem
Function UnMaskBinData( x )              && Não lembro quem fez
      x := StrTran( x , '(92)' , chr(92) )
      x := StrTran( x , '(24)' , chr(24) )
      x := StrTran( x , '(26)' , chr(26) )
      x := StrTran( x , '(0)'  , chr(0)  )
      x := StrTran( x , '(39)' , chr(39) )
      return x




Il giorno lunedì 21 gennaio 2013 17:09:29 UTC+1, Mimmo Italia ha scritto:
Grazie per il consiglio. Provero' i vari metodi, volevo sapere piu' precisamente nella campi Memo si ha la possibilita di inserire allegati di vari grandezze.
Grazie.
MImmo.
-- 
Massimo Belgrano

Mimmo Italia

unread,
Jan 24, 2013, 6:02:54 AM1/24/13
to harbo...@googlegroups.com
Ciao Massimo,
volevo sapere  la funzione ClipValueSQL2() dove la posso reperire. Purtroppo sono nuovo sui gruppi, volevo sapere come  contattare Marcelo de Paula.
Grazie.
Saluti Mimmo.

Massimo Belgrano

unread,
Jan 24, 2013, 7:11:45 AM1/24/13
to harbo...@googlegroups.com
credo che sia iscritto a minigui brasil
http://br.groups.yahoo.com/group/miniguibrasil/
ma dovresti cercare anche su un gruppo molto attivo
http://hmgforum.com/

condividi qua i risultati che trovi




--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per postare messaggi in questo gruppo, invia un'email a harbo...@googlegroups.com.
Per annullare l'iscrizione a questo gruppo, invia un'email a harbourITA+...@googlegroups.com.
Visita questo gruppo all'indirizzo http://groups.google.com/group/harbourITA?hl=it.
Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
 
 
Reply all
Reply to author
Forward
0 new messages