Jump to content
Fivewin Brasil

select area com banco mdb


gabrieis300

Recommended Posts

#include "Fivewin.ch"
#include "ribbon.ch" 

static oWnd

function Main()

    LOCAL oRs, oErr, oRibbon 

    set deci to 2
    set device to screen
    set cent on 
    SET _3DLOOK ON
    SET DATE TO BRITISH
    SET EPOCH TO (YEAR(DATE())-10) 
    SET SOFTSEEK ON 
	 set multiple on


    StrDatabase   := "d:\sabao2\sisger.mdb"
    StrTable      := "movimentacao"
    StrField     := "descricao"
    NumField     := "idmovimento" 

    oRs := TOleAuto():New( "ADODB.Recordset" )
	 oRsa := TOleAuto():New( "ADODB.Recordset" )
    
	 oRs:Open( "SELECT * FROM MOVIMENTACAO", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase, 1, 3 ) 
    oRsa:Open( "SELECT * FROM PRODUTOS", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase, 1, 3 ) 
	 


   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE "Acess"


	DEFINE RIBBONBAR oRibbon PROMPTS "Relatorio"  OF oWnd ; 
	HEIGHT 120 TOPMARGIN 25

   ADD GROUP oGrupo RIBBON oRibbon TO OPTION 1 PROMPT "Executar" 
   
   @ 05,04 ADD BUTTON oBtn1 PROMPT "Resumo das Vendas" ;
           GROUP oGrupo SIZE 142, 25 Right BORDER ROUND ROUNDSIZE 2;
           action tela_imp(oRs,oRsa)

   @ 35,04 ADD BUTTON oBtn1 PROMPT "Sair" ;
           GROUP oGrupo SIZE 142, 25 Right BORDER ROUND ROUNDSIZE 2;
           action r_sair()


   SET MESSAGE OF oWnd TO FWVERSION + " - Relatorio Sabão Lava tudo"

   ACTIVATE WINDOW oWnd maximized

return nil

sabendo se que existe para o mysql o seguinte comando

csql = "select * from tabela"

sele tab

use sql(csql) alias tabelas via 'Mysql'

go top

nessa linha aqui

oRs:Open( "SELECT * FROM MOVIMENTACAO", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase, 1, 3 )

como criar um select para o open da tabela do mdb?

Link to comment
Share on other sites

  • 3 weeks later...

Não uso atualmente, mas já usei assim:

Static function CarregaFiscal(oCpo,aLista)
  Local nP,cSql,oCarga,lData:=space(12),nLista:=Len(aLista),dLote:=ctod("")
  If nLista > 0
     For nP = 1 to nLista
  	      DelMatriz(aLista,oBrw:nArrayAt) 
     Next
  Endif
  cSql := "SELECT re,nome,telefone,cargo,id_supervisor,status,apelido,setor " 
  cSql += " FROM cad_func ORDER BY nome ; "

  oCarga := TDbOdbcDirect():new( cSql,oOdbc)
  oCarga:Open()
  If empty(oCarga:FieldGet(1))
     oCarga:End()
     GbMsg("Nenhum registro selecionado!",,2)
    // GbFoco(oCad[1])
     return(.f.)
  Endif
  While !oCarga:Eof()
    aAdd(aLista,{oCarga:FieldGet(1),oCarga:FieldGet(2) } )
    oCarga:Skip()
  End
  oCarga:End()

return(.t.)
Link to comment
Share on other sites

  • 2 months later...

Amiguinho,

Entenda que cada oRS deva ser um objeto separado, ou seja, agirá como um tabela.

Neste caso a sua variável de controle de objeto recordset deverá ser um vetor oRS := {}.

A cada recordset que voce abrir voce anexa ao vetor.

oRs[1]:Open( "SELECT * FROM MOVIMENTACAO", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase, 1, 3 )
oRs[2]:Open( "SELECT * FROM PRODUTOS", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase, 1, 3 )

O select para cada área se dará pelo seu numero, ou seja, toda vez que voce se referenciar a uma área referencie-se pela posição.

Neste link aqui voce pode visualizar o set de comandos e funções para acesso a databases via ADO e pegar algumas funções de complemento.

No link abaixo está toda discussão sobre o assunto com exemplos:

*** ADOxb - BIblioteca de funções de Acesso SQL ***

Não sei se voce está usando database MDB com DBF vinculado, mas o fato do MDB permitir isto, o que facilita bastante o uso do DBF é que voce vai usando comandos SQL para mante-los.

Outra coisa MDB para uso em produção tem limites, sugiro, na mesma linha do MDB o MSDE que é um Microsoft SQL Server Data Engine reduzido e o trabalho via ADO é simples também.

Link to comment
Share on other sites

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...