DEFININDO O PATH DO SISTEMA LOCALMENTE
Boa tarde,
Tenho um de meus programas que trabalham em rede...
Estou tendo um trabalho para definir o path do banco de dados.
Atualmente faço assim:
Num modulo eu declarei a variavel do banco de dados e coloquei tb os dois caminho:
ai quando eu vou gerar o executavel do programa onde o banco de dados está local eu habilito a linha do path local e desabilito a do path em rede. Quando eu vou gerar o executavel do programa onde o banco de dados está local eu habilito a linha do path local e desabilito a do path em rede.
tem alguma forma de definir isso em cada terminal, ou seja, cada terminal ser definido o path dele.
Gostaria de uma solução que não deixasse pesado a consulta dos dados no bd
Tenho um de meus programas que trabalham em rede...
Estou tendo um trabalho para definir o path do banco de dados.
Atualmente faço assim:
Num modulo eu declarei a variavel do banco de dados e coloquei tb os dois caminho:
Sub ABRIR_BD()
[ô]Set BD = OpenDatabase([Ô]\\SERVIDOR\SISTEMA\Cyberbase.mdb[Ô])
Set BD = OpenDatabase(App.Path & [Ô]\CYBERBASE.mdb[Ô])
End Sub
ai quando eu vou gerar o executavel do programa onde o banco de dados está local eu habilito a linha do path local e desabilito a do path em rede. Quando eu vou gerar o executavel do programa onde o banco de dados está local eu habilito a linha do path local e desabilito a do path em rede.
tem alguma forma de definir isso em cada terminal, ou seja, cada terminal ser definido o path dele.
Gostaria de uma solução que não deixasse pesado a consulta dos dados no bd
kra essas informações eu guardava em arquivos [Ô].ini[Ô] entao na entrada no sistema eu faço o programa verificar se o banco existe e se esta conectavel, se nao eu jogo para uma tela onde a pessoa seleciona os dados e faz a gravação deles...
Um arquivo INI é um arquivo texto usado para armazenar/fornecer configurações pessoais para sistemas/usuários ; Um arquivo INI é um arquivo com dados externos ao programa principal.
entao ficara assim a estrutura do arquivo [Ô].ini[Ô]
vamos la mexer com arquivos [Ô].ini[Ô]
Segue Links...
http://www.vbforums.com/showthread.php?t=439267
http://vbtuga.blogspot.com/2008/06/vb6-guardar-configuraes-ini-vs-registry.html
http://www.freevbcode.com/ShowCode.asp?ID=5390
http://www.macoratti.net/arq_ini.htm
Abraços
Espero que ajude.. Abraços
Um arquivo INI é um arquivo texto usado para armazenar/fornecer configurações pessoais para sistemas/usuários ; Um arquivo INI é um arquivo com dados externos ao programa principal.
entao ficara assim a estrutura do arquivo [Ô].ini[Ô]
[DADOS_PROGRAMA]
path=\\SERVIDOR\SISTEMA\Cyberbase.mdb
vamos la mexer com arquivos [Ô].ini[Ô]
Segue Links...
http://www.vbforums.com/showthread.php?t=439267
http://vbtuga.blogspot.com/2008/06/vb6-guardar-configuraes-ini-vs-registry.html
http://www.freevbcode.com/ShowCode.asp?ID=5390
http://www.macoratti.net/arq_ini.htm
Abraços
Espero que ajude.. Abraços
tem como postar o codigo ai do acesso ao seu bd via .ini ?
eu usava esse tipo quando programava em vb6, hoje ja faço criptografado em arquivo xml.
mas é so criar o modulo conforme exemplos que te passei e tacar o valor em uma variavel...
mas é so criar o modulo conforme exemplos que te passei e tacar o valor em uma variavel...
Dim strPath as string
[ô]Leio a função e preenxo a variavel
strPath = ReadINI([Ô]DADOS_PROGRAMA[Ô], [Ô]path[Ô], App.Path & [Ô]\show.ini[Ô])
agora aqui eu seto
Set BD = OpenDatabase(strPath)
Tente isto
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=2183
Se não der...
Crie um novo projeto e add esses formulários e ocx que estou te enviando...
Não se esqueça de registrá-las antes...
O módulo.. O Sub Main () dele ... vc altere de acordo com a necessidade do seu programa iniciar.. ok?
Caso seja isso .. Me Pontue...
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=2183
Se não der...
Crie um novo projeto e add esses formulários e ocx que estou te enviando...
Não se esqueça de registrá-las antes...
O módulo.. O Sub Main () dele ... vc altere de acordo com a necessidade do seu programa iniciar.. ok?
Caso seja isso .. Me Pontue...
bom eu não tenho código aqui, porém eu fazia assim:
usava o arquivo INI, quando o programa era iniciado pela primeira vez verificava se o arquivo ini existia, se não perguntava se seria local ou na rede.
se o usuraio escolhe-se rede então rede era mapeada para se escolher onde esatria o banco.
coissa simples
If Dir([Ô]c:\seuprog\arquivo.ini) = [Ô][Ô] then
[ô] localizar arquivo na rede
end if
usava o arquivo INI, quando o programa era iniciado pela primeira vez verificava se o arquivo ini existia, se não perguntava se seria local ou na rede.
se o usuraio escolhe-se rede então rede era mapeada para se escolher onde esatria o banco.
coissa simples
If Dir([Ô]c:\seuprog\arquivo.ini) = [Ô][Ô] then
[ô] localizar arquivo na rede
end if
eu fiz assim:
eu criei uma arquivo .ini chamado config.ini e coloquei ele no path do meu sistema....
coloquei nele assim:
Num modulo eu coloquei assim:
[ô]general_declatarion
ai no form_load eu coloquei assim:
ai quando executo ele dar o erro:
Nome do arquivo invalido!
ai quando debugo ele seleciona a linha:
Set BD = OpenDatabase(DBPath) ai quando coloco o mouse sobre DBPath ele me mostra [Ô]App.Path & [Ô]\CYBERBASE.mdb[Ô][Ô]
o banco de dados existe normalmente...
tanto que se eu mudar de Set BD = OpenDatabase(DBPath) para Set BD = OpenDatabase(App.Path & [Ô]\CYBERBASE.mdb[Ô]) ele abre normalmente.
onde tô errando?
eu criei uma arquivo .ini chamado config.ini e coloquei ele no path do meu sistema....
coloquei nele assim:
[DADOS_PROGRAMA]
path=App.Path & [Ô]\CYBERBASE.mdb[Ô]
Num modulo eu coloquei assim:
[ô]general_declatarion
Option Explicit
Global BD As Database
Public DBPath As String
[ô]Função para ler o arquivo .ini
Declare Function GetPrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nsize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
[ô]função para abrir o banco de dados
Sub Abrir_BD3()
[ô]Leio a função e preenxo a variavel
DBPath = ReadINI([Ô]DADOS_PROGRAMA[Ô], [Ô]path[Ô], App.Path & [Ô]\Config.ini[Ô])
[ô]agora aqui eu seto
Set BD = OpenDatabase(DBPath)
End Sub
ai no form_load eu coloquei assim:
Private Sub Form_Load()
Dim SQL As String
Dim RS As Recordset
Call Abrir_BD3
SQL = [Ô]SELECT * FROM CONFIGURACAO WHERE (CODIGO = 1)[Ô]
Set RS = BD.OpenRecordset(SQL)
End Sub
ai quando executo ele dar o erro:
Nome do arquivo invalido!
ai quando debugo ele seleciona a linha:
Set BD = OpenDatabase(DBPath) ai quando coloco o mouse sobre DBPath ele me mostra [Ô]App.Path & [Ô]\CYBERBASE.mdb[Ô][Ô]
o banco de dados existe normalmente...
tanto que se eu mudar de Set BD = OpenDatabase(DBPath) para Set BD = OpenDatabase(App.Path & [Ô]\CYBERBASE.mdb[Ô]) ele abre normalmente.
onde tô errando?
primeiro função para ser gravada em um módulo
no arquivo ini o caminho tem de estar completo
e carregar assim
agora sim funciona
bom se o seu banco estiver em outro pc na rede proceda desta forma
[ô]
[ô] funções para escrever e ler arquivos ini
[ô]
Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias _
[Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName _
As String) As Long
[ô]
Declare Function GetPrivateProfileString Lib [Ô]kernel32[Ô] Alias _
[Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
[ô]
Public Ret As String
[ô]
[ô] sub função para gravar um arquivo ini
[ô]
Public Sub WriteINI(FileName As String, Section As String, Key As String, Text As String)
WritePrivateProfileString Section, Key, Text, FileName
End Sub
[ô]
[ô] Função para ler um arquivo ini
[ô]
Public Function ReadINI(FileName As String, Section As String, Key As String)
Ret = Space$(255)
retLen = GetPrivateProfileString(Section, Key, [Ô][Ô], Ret, Len(Ret), FileName)
Ret = Left$(Ret, retLen)
ReadINI = Ret
End Function
no arquivo ini o caminho tem de estar completo
[DADOS_PROGRAMA]
path = [Ô]c:\Arquivos de Programas\CYBERBASE\CYBERBASE.mdb[Ô]
e carregar assim
[ô]função para abrir o banco de dados
Sub Abrir_BD3()
[ô]Leio a função e preencho a variavel
DBPath = ReadINI(App.Path & [Ô]\config.ini, [Ô]DADOS_PROGRAMA[Ô], [Ô]path[Ô])
[ô]agora aqui eu seto
Set BD = OpenDatabase(DBPath)
End Sub
agora sim funciona
bom se o seu banco estiver em outro pc na rede proceda desta forma
[DADOS_PROGRAMA]
path = [Ô]\\PC_DA_REDE\CYBERBASE\CYBERBASE.mdb[Ô]
Deu o erro:
Variavel nao definida: em [Ô]retLen[Ô]
Variavel nao definida: em [Ô]retLen[Ô]
O arquivo que lhe postei não foi útil não?
sorry... declarei como String e deu certinho!
Sim, baixei seu exemplo, mas não pude abrir, pois deu erro aqui nele... só serviu visivelmente... me parece bom, tem como ver pq nao abriu... pois coloquei os ocx no system32 e os registrei... na quando executo os picturebox aparece vazio e nao tem nenhuma função!
Sim, baixei seu exemplo, mas não pude abrir, pois deu erro aqui nele... só serviu visivelmente... me parece bom, tem como ver pq nao abriu... pois coloquei os ocx no system32 e os registrei... na quando executo os picturebox aparece vazio e nao tem nenhuma função!
Tópico encerrado , respostas não são mais permitidas