Newsgroup: it.comp.lang.delphi
Titolo: problema con adoconectionstring

ciao a tutti,
sto provando ad aprire a run time una connection string ma mi da questo
errore:
[Error] Unit1.pas(234): String literals may have at most 255 elements
ecco il codice:
Adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password=
"";User ID=Admin;Data Source=' +
ExtractFilePath(Application.Exename)+'primanota.mdb;Mode=Share Deny
None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry
Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet
OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet
OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica
Repair=False;Jet OLEDB:SFP=False';
adoconnection1.Open;
Come posso risolvere???
ciao


Dovrebbe significare che in Delphi una stringa non può essere maggiore di
255 caratteri

come posso risolvere il problema??
ciao


> maggiore di 255 caratteri
IMHO se fai cosě
s1 := 'Provider=Microsoft.Jet.OLEDB.4.0;Password=
"";User ID=Admin;Data Source=' +
ExtractFilePath(Application.Exename)+'primanota.mdb;Mode=Share Deny
None;Extended Properties="";Jet OLEDB:System database="";Jet
OLEDB:Registry
Path="";Jet OLEDB:Database Password="";'
s2 := 'Jet OLEDB:Engine Type=5;Jet
OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet
OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica
Repair=False;Jet OLEDB:SFP=False';
Adoconnection1.ConnectionString := s1 + s2;
(o piů spezzata, se necessario), dovrebbe andare.
-- 
Jax


Ora il programma parte ma visualizza l'eccezione "Inpossibile trovare isam
installabile..."
ciao

 isam installabile..."
Qui la mia conoscenza si ferma.
Hai installato MSDAC?
--
Jax

"Jax" <rispo...@newsgroup.grazie> ha scritto nel messaggio
news:VlZk9.18437$e31.3...@twister2.libero.it...

il problema sorge solo se lancio la connection string a run time...se la
compilo tramite l'object inspector funziona...
ciao

purtroppo devo per forza "costruire" la connection string a run time usando
'+ ExtractFilePath(Application.ExeName)+' altrimenti una volta creato il
pacchetto di installazione il collegamento all'applicazione sul desktop non
funziona...
ciao

 >
Dovrebbero essere dei driver che ti permettono di accedere ai db. Mi associo
alla domanda di Jax: "Hai installato MSDAC?"
Comunque prova a fare una ricerca su 
http://msdn.microsoft.com

 Comunque prova a fare una ricerca su 
http://msdn.microsoft.com
no non l'ho installato...non so neanche cosa sia...;-)
però ti ripeto...con l'object inspector funziona quindi deve esserci
qualcosa nelle tre stringhe che ho concatenato per formare la
connectionstring a run time...
S1:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data
Source='+ ExtractFilePath(Application.ExeName)+'primanota.mdb;Mode=Share
Deny None;Extended Properties="";Jet OLEDB:System database="";Jet
OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
S2:='Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;';
S3:='Jet OLEDB:New Database Password="";Jet OLEDB:Create System
Database=False;Jet OLEDB:Encrypt Database=False;JetOLEDB:Don''t Copy Locale
on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet
OLEDB:SFP=False';
Adoconnection1.ConnectionString:=S1+S2+S3;
adoconnection1.Connected:=true;
adotable1.Active:=true;
ciao!

altra cosa: per creare il pacchetto di installazione ho usato Innosetup. E
in effetti nelle FAQ si dice che se il collegamento sul desktop alla propria
applicazione non funziona è perchè l'applicazione non riesce ad accedere ad
alcuni file....manca in pratica nel collegamento il percorso
dell'applicazione nel campo "Da". E' per questo che sto tentando di
costruire a run time la connection string....
vi riporto il testo della faq presa dal sito di innosetup:
My application can't find any of its files when it is started from the
shortcut created by Setup. It works fine when I double-click the
application's EXE in from Explorer.Why?
  Your application is most likely not specifying pathnames on the files it
is trying to open, so it is expecting to find them in the current directory.
Inno Setup by default will not set the "Start In" field of shortcuts,
meaning Windows picks a current directory itself, which usually won't be the
same directory as your application. Working around this is a trivial task; a
"WorkingDir: {app}" parameter simply needs to be added to the [Icons] entry.
  However, I would not recommend that as the best solution. In most cases,
applications should not expect to be started from a particular directory.
They should always specify full pathnames on files they open. In Delphi or
C++Builder it's possible to get the full pathname of the directory
containing the EXE by calling: ExtractFilePath(ParamStr(0)). If, for
example, you wanted to reference a file named "File.txt", you would use:
ExtractFilePath(ParamStr(0)) + 'File.txt'.

 OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
Prova a spezzare ulteriormente questa stringa.
--
Jax

ho risolto!!! ;-)))
era un'errore nell'ultima stringa...due caratteri attaccati...
ciao!