Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [delphi]: problema con adoconnection string

    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=Microso ft.Jet.OLEDB.4.0;Password=
    "";User ID=Admin;Data Source=' +
    ExtractFilePath(Application.Exename)+'primanota.md b;Mode=Share Deny
    None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry
    Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=5;Jet
    OLEDBatabase 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
    OLEDBon''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica
    Repair=False;Jet OLEDB:SFP=False';
    adoconnection1.Open;

    Come posso risolvere???

    ciao
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Riga troppo lunga

    Il compilatore ti indica che hai espresso un valore stringa letterale troppo lungo, che supera i 255 caratteri.

    Prova a risolvere così:
    aggiungi i parametri della ConnectionString poco per volta.

    Un esempio:
    codice:
    Adoconnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=';
    Adoconnection1.ConnectionString := Adoconnection1.ConnectionString + 'ExtractFilePath(Application.Exename)+'primanota.mdb;Mode=Share Deny 
    None;Extended Properties="";Jet OLEDB:System database="";.........';
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ho spezzato la stringa in 3...Ora il programma parte ma visualizza l'eccezione "Inpossibile trovare isam
    installabile..."

    con l'object inspector funziona quindi deve esserci
    qualcosa nelle tre stringhe che ho concatenato per formare la
    connectionstring a run time...
    [CODE]
    S1:='Provider=Microsoft.Jet.OLEDB.4.0;Password=""; User ID=Admin;Data
    Source='+ ExtractFilePath(Application.ExeName)+'primanota.md b;Mode=Share
    Deny None;Extended Properties="";Jet OLEDB:System database="";Jet
    OLEDB:Registry Path="";Jet OLEDBatabase Password="";';

    S2:='Jet OLEDB:Engine Type=5;Jet OLEDBatabase 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;JetOLEDBon''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;
    [CODE]

    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
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Debug! Debug! Debug!

    Che posso dirti? Evidentemente, non sono uguali le due stringhe a tua disposizione (quella nell'Object Inspector e quella creata a runtime).

    Esegui il debug del tuo programma copiandoti nel Blocco Note la riga nell'Object Inspector e, in fase di esecuzione, quella che ottieni nella variabile di appoggio e che memorizzi successivamente nella proprietà ConnectionString.

    Fai "copia e incolla" per essere sicuro al 100% dell'autenticità dei valori.

    Confrontando le due stringhe, dovresti notare ad occhio la differenza che provoca l'errore in fase di esecuzione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    ok ora faccio un pò di prove...ma ho ancora una domanda: come deve essere impostata l'Adoconnection nell'object inspector??? Voglio dire: deve essere attivato o no?? Deve avere anch'essa la connection string o non serve definirla in fase di "design"??
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  6. #6
    ehm..come faccio a visualizzare il contenuto delle 3 stringhe s1 s2 s3???

    ciao e scusa la domanda un pò idiota...
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  7. #7
    Originariamente inviato da elevation
    ehm..come faccio a visualizzare il contenuto delle 3 stringhe s1 s2 s3???

    ciao e scusa la domanda un pò idiota...
    sono riuscito a visualizzarla con showmessage ma non posso selezionarla per copiarla nel blocco note... help!!!
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Per le stringhe, ti conveniva utilizzare una sola variabile.
    Ad ogni modo, puoi ispezionare il contenuto della variabile, o dell'espressione s1+s2+s3, mettendo un breakpoint nel punto in cui avviene la concatenazione (clic sulla barra a sinistra) e, a runtime, fai clic con il tasto destro su una delle variabili scegliendo la voce di menu "Evaluate". Nella finestra che apparirà, puoi inserire qualsiasi tipo di espressione che desideri valutare in quel momento del programma.

    Che sia definita o no, la ConnectionString non ha importanza.

    L'importante è accertarsi che Connected sia a False nell'Object Inspector per evitare che il componente ADOConnection tenti di collegarsi utilizzando quella stringa quando il modulo (Form o DataModule che sia) in cui è contenuto viene caricato.

    Imposterai Connected a True a runtime dopo aver inizializzato la ConnectionString

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    puoi spiegarmi meglio come si inserisce un breakpoint...???

    ciao
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  10. #10
    Grazie mille!!!!! ho scovato l'errore...era un JetOLEDB al posto di JET OLEDB...

    ciao e grazie ancora!!!
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.