BD em mdb no mesmo diretório do exe
Olá, pessoal. Tô com o seguinte problema: desenvolvi minha aplicação e está tudo legal só que para que fique genérica preciso colocar o endereço do meu banco de dados, um arquivinho mdb, no mesmo diretório do executável do programa só que não sei como fazer. Estou usando o TADOConnection. Tnho que mudar no datamodule ou no formulário que irá chamar a conexão???? como e onde eu mudo essa string??
Fabricio Luciano
Curtidas 0
Respostas
Fabricio Luciano
28/09/2013
coloquei assim no formulário principal pessoal e dá erro de : Não foi possível encontrar ISAM instalável. Será que posso colocar no onCreate do DataModule??? O que está errado no código???
con_string := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=ExtractFilePath(Application.ExeName)' + 'Mello_Andaimes.mdb;';
con_string := 'Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
con_string := 'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;';
con_string := 'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;';
con_string := 'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Dont Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
Data_Module.Connection_Clientes.Close;
Data_Module.Connection_Clientes.ConnectionString := con_string;
Data_Module.Connection_Clientes.Open();
con_string := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=ExtractFilePath(Application.ExeName)' + 'Mello_Andaimes.mdb;';
con_string := 'Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
con_string := 'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;';
con_string := 'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;';
con_string := 'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Dont Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
Data_Module.Connection_Clientes.Close;
Data_Module.Connection_Clientes.ConnectionString := con_string;
Data_Module.Connection_Clientes.Open();
GOSTEI 0
Joel Rodrigues
28/09/2013
Na parte do DataSource você esqueceu uma aspa e um sinal de +. Veja como está:
Quando o correto seria:
Da forma como está, "ExtractFilePath(Application.ExeName)" está indo como texto para a string de conexão e não pegando o valor correto.
...Data Source=ExtractFilePath(Application.ExeName)'
Quando o correto seria:
...Data Source='+ExtractFilePath(Application.ExeName)
Da forma como está, "ExtractFilePath(Application.ExeName)" está indo como texto para a string de conexão e não pegando o valor correto.
GOSTEI 0
Fabricio Luciano
28/09/2013
Concerto feito, coloquei a aspas simples e o sinal de concatenação ficando assim:(con_string := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' + ExtractFilePath(Application.ExeName) + 'Mello_Andaimes.mdb;';), mas o erro permanece.
GOSTEI 0
Marcos Saffran
28/09/2013
Olá Fabricio,
tente da seguinte forma:
tente da seguinte forma:
con_string := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Mello_Andaimes.mdb;';
GOSTEI 0
Fabricio Luciano
28/09/2013
Não meu amigo...não funcionou. deu um erro maluco com um numero enorme como de memória.....afff já tô doido com isso pq pesquisando na net esse problema é frequente mas ninguém posta uma solução.....mas, vamos continuando.
GOSTEI 0