Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Database protetto da password

Qualcuno mi sa dire perchč quando apro il pannello per l'aggiornamento del
database durante il debug va tutto liscio, mentre una volta compilato il
sorgent e lanciato l'eseguibile non ne vuol sapere e mi dice sempre
"password non valida"?
Il codice con cui chiamo il pannello č:
Private Sub Command1_Click(Index As Integer)
        database_updater.Show
End Sub
Mentre quello che apre il database, associato all'evento "onload" del form
č:
    data1.DatabaseName = App.Path & "\db1.mdb"
    data1.Connect = ";PWD=miapassword"
    data1.RecordSource = "nome_tabella"
    data1.Refresh
    data1.Recordset.Index = "indice_tabella"
dove sbaglio?
Grazie mille!

 dove sbaglio?
Credo nell'assegnazione della .Connect.
Non lo so. Ora leggi un po' (anche sui post precedenti su questo NG):
http://makeashorterlink.com/?U5FD25F32

 
http://makeashorterlink.com/?U5FD25F32
In subordine (ma solo estremo e con accesi istinti masochistici), puoi
aspettare la risposta di Albe V°, lui se ne intende, anche se ogni tanto si
scusa (vedasi topic "[OT] Scusatemi" del 21-10). :-)

 Credo nell'assegnazione della .Connect.
Adesso controllo, grazie

 vabbuò dai mi sono confuso con l'html, è "load", chiedo venia!


 xchč lo ritenevo superfluo, trattandosi di un prob di password.
Mai dare nulla per scontato:
http://makeashorterlink.com/?O2AA420F1

 Ho cercarto nella MSDN ma non sono stato in grado di trovare nulla :(
Vedi anche questo.
http://makeashorterlink.com/?U1CE62F32
Ma, insomma, č un Access 97 o 2000?

 
http://makeashorterlink.com/?O2AA420F1
Si va bene ti do ragione. Ma spiegami perchč avrei dovuto rinominare un mp3
in .mdb ed utilizzarlo come database. E soprattutto dimmi perchč un form
avrebbe dovuto aprire detto file correttamente come un database access,
facendomi effettuare le ricerche, e l'altro form no.
Comunque ho risolto, sbattendoci la testa e come al solito andando per
tentativi alla fine. Il guaio stava qui:
        Data1.DatabaseName = App.Path & "\db1.mdb"
        Data1.Connect = ";PWD=miapassword"
---->Data1.RecordSource = "nometabella" (questa riga era di troppo)
        Data1.Refresh
Ciao e grazie comunque per avermi preso in considerazione.
P.S. ma qui dentro non c'č davvero nessuno che si intende di DirectX in VB?
(vedi mio post "[?]DirectX 8.1 e VB Objects" del 22/10/2002 13:14)

Come non detto,
non ho risolto proprio un bel niente. Come al solito, se lancio il programma
dalla "consolle" col tasto F5, funziona a meraviglia. Quando poi lo compilo,
non funziona pių.
N.B. il database, che č un access 97, si trova nella stessa cartella del
programma. (questo per non dare nulla per scontato)

 facendomi effettuare le ricerche, e l'altro form no.
Io non ho detto che avresti dovuto rinominare un MP3.
Ho solo obiettato che non č detto che un .MDB, solo perchč ha
quell'estensione, debba essere necessariamente un file Access. Comunque
discutevo sulla versione. Approfondisci quanto presente nei link (anche
interni) che ti ho dato. A che SP sei? (Sia di Jet che di VB6)

 ha scritto nel messaggio
news:Hmyu9.80781$%M1.20...@twister2.libero.it...


 ha scritto nel messaggio
news:uIyu9.34501$dj7.2...@tornado.fastwebnet.it...


 database 97.
Vai in fondo alla pagina e installa almeno il SP3 di Jet
http://www.microsoft.com/data/download.htm#Jet4SP3info
Altro non saprei.

 (questo per non dare nulla per scontato)
Ecco, non dare per scontato che chi legge questo post
capisca a cosa ti riferisci.
-- 
ciao, hal

 Altro non saprei.
Fatto.
Ti scrivo con le lacrime agli occhi e le mani che mi tremano per la
rabbia!!! Sono incazzato come una biscia, non hai idea... Non capisco come
sia possibile che tutto ad un tratto non funziona piů, e soprattutto perchč
in debug va e compilato non piů.
Grazie davvero Lupo, sei stato disponibilissimo.
Se qualcuno ha qualche idea... altrimenti cercherň ancora in giro e poi vi
farň sapere...
Ciao

 in debug va e compilato non più.
Prova a concentrarti sulle dichiarazioni di progetto, in particolare per il
DataControl, che vengono eseguite in modo trasparente al caricamento del
form.
Metti dei MsgBox (meglio sarebbe scrivere il tutto in un listbox o su un
file TXT per evitare che le "interruzioni" del MsgBox introducano altre
problematiche) giusto per sapere quali sono i passaggi dell'EXE.
Considera anche la possibilità di non dichiarare niente a livello di
proprietà, ma di assegnare le stesse da codice (mi pare che tu lo faccia
già).
Immagino che si stia parlando della stessa macchina, fra Debug e EXE. Se no
non è escluso che sia un problema di aggiornamenti della macchina ricevente.

 non è escluso che sia un problema di aggiornamenti della macchina
ricevente.
Si si è la stessa macchina.
Mi viene quasi voglia di mandarti il sorgente di tutto l'ambaradan, ma non è
il caso credo...

 il caso credo...
Allora č molto probabilmente un problema di eventi che si scatenano (e ne
eseguono il codice contenuto) in tempi e sequenze diverse dal Debug. Vale il
consiglio di prima, a questo punto _solo_ scrivendo su un file di testo/log.
Mettine in abbondanza e in vari punti, poi criticali. Scoprirai i percorsi
dell'EXE e, probabilmente, c'č qualche riferimento a situazioni non ancora
correttamente predisposte.

Ciao
ricordi la discussione di ieri sui database protetti da password?
Stamattina sono ancora più imbestialito di ieri e ti spiego pure perchè.
Come al solito in ambiente microsoft le cose sembrano sembre velate di
mistero. Probabilmente poi sono io che son stupido o ignorante, nel senso
che ignoro qualche passaggio fondamentale.
Bene, preso dalla disperazione ho fatto qualche ultimo tentativo, visto che
ripassando al setaccio tutte le guide non riuscivo a trovare alcun errore
nel mio codice. Mi sono detto, se in debug va e compilato no, qual'è la
differenza di condizioni tra questi due casi? E l'unica che ho trovato è la
cartella. Infatti in debug, il progetto e il database si trovano in una
cartella, mentre il compilato si trovava sul desktop, ovviamente ol relativo
database.
Ebbene, ho pensato, adesso lo compilo nella stessa dir del progetto e
vediamo. INNCREDDIIBILE AMMISCI, adesso va. Allora vi chiedo. E' mai
possibile che sul desktop non funzioni, mentre nella cartella dove risiede
il progetto si? che devo fare?
Vi dico pure che ho provato in altre cartelle e niente da fare. E però nella
cartella del progetto non c'è nessuna libreria o controllo OCX, niente di
niente. Nel codice ho pure scritto che il database deve risiedere nella
stessa cartella del software.
Non  ne salto fuori, anzi, mi sembra di aver fatto un salto nel buoi. Per
piacere abiate la bontà di tirarmi fuori.

 App.Path & "\db1.mdb"
App.path ritorna il path dove si trova l'eseguibile č ovvio che se l'exe si
trova sul desktop anche il database si deve trovare sul desktop.
A fronte di questo o il database non c'č sul desktop oppure č diverso
Ciao

Vi dico pure che ho provato in altre cartelle e niente da fare. 
Suppongo che il tuo programma "dia per scontato" quale sia la
directory corrente.
Se cosi' fosse allora basterebbe usare il percorso "completo" del file
mdb, i problemi
sparirebbero come neve al sole ;-)
-- 
hth, hal

 mdb, i problemi sparirebbero come neve al sole ;-)
O magari un ChDir ?
Bye, G.

 il progetto si? che devo fare?
Metti tutto in una cartella "vera" e riprova, dall'inizio alla fine.
Resta da determinare (se devo essere sincero, non l'ho mai capito) quanto la
segnalazione/descrizione dell'errore sia congruente col problema. Credo che,
con un tasso alcolico medio, comune e popolare, non sia concepibile. Voglio
anch'io, per una volta, farmi con i liquidi che M$, pare, usi semplicemente
per dissetarsi.

 Metti tutto in una cartella "vera" e riprova, dall'inizio alla fine.
Lo è, tranquillo... basta usare il buon vecchio Norton Commander 95
per saperlo con sicurezza. Un prog in Dos è l'unico modo per vedere,
per esempio, le dir nascoste _davvero_ sotto Windows. Tipo quelle
dei file temporanei Internet, che Win non ti farà mai vedere neanche
a crepare. Altre info in:
http://groups.google.it/groups?selm=9ndml6%241kl0%241%40stargate1.inet.it
http://groups.google.it/groups?selm=8hm6cp%2459sq%241%40stargate1.inet.it
Bye, G.

 
http://groups.google.it/groups?selm=8hm6cp%2459sq%241%40stargate1.inet.it
Bene, ma 'sti link quanti lustri hanno? :-((

Da:Paperino (non...@lo.dico)
Soggetto:Re: Cartella Temporary Internet Files
Newsgroups:it.comp.sicurezza.windows
Data:2000/06/07
Bye, G.

 (Altra faccina -> ;-) )
Faccina---> :-)
Diciamo che se ho beccato il problema c'è di mezzo una buona dose di fortuna, tu
sicuramente sei stato molto più tecnico e senza il tuo aiuto Movie Maniac non
sarebbe arrivato alla causa e io alla soluzione (forse).
P.S.:
Ieri sono andato a dormire alle 2 e questa mattina mi sono svegliato alle
08:00 ed ero alle prese rispettivamente con:
1. 
VB.NET
 (Vedasi post "VB -> 
VB.NET
 senza compatibilità")
2. Socket (client+server)
3. un mio Servizio Windows (in .NET) con relativo controller nella tray-bar
4. Normativa per il protocollo informatico (12 decreti + documenti vari)
5,6,7,8. Una moglie
9. Due figli
10. Newsgroup
;-)
Ciao
--
Camplix
-Windows .Net Server (RC1)
-Visual Basic .NET Standard
-Framework Sp2

 soddisfatto o rimborsato. :-P
Ti chiedo scusa, ora vanno. Stavo facendo un download pesantuccio. Grazie,
ora leggo.

 08:00 ed ero alle prese rispettivamente con:
Stavo scherzando, neh?! :-))

 wrote in message
news:F1Tu9.83119$RO.21...@twister1.libero.it...

Certo era chiarissimo... :-)


 A fronte di questo o il database non c'è sul desktop oppure è diverso
il database c'è sul desktop, ed è proprio lo stesso. Ho provato a copiarlo
dalla dir del progetto e niente da fare.
L'exe funziona solo nella dir del progetto e da nessun'altra parte...

 L'exe funziona solo nella dir del progetto e da nessun'altra parte...
Ora vogliamo vedere il codice, a partire da quello che contiene l'istruzione
incriminata (se ve n'č una) e richiami.

 sparirebbero come neve al sole ;-)
Ma se uso il percorso completo poi non posso distribuire l'applicazione
giusto? considera che la distribuisco a gratise su internet senza
installer... solo l'exe e il database.

installer... solo l'exe e il database.
Il percorso va letto a runtime ;-)
Potresti stabilire una sequenza di ricerca:
1. eventuale valore di configurazione (registry, file ini, file xml,
qualsiasi altra cosa);
2. se fallisce la prima allora cerchi nel percorso stesso dell'
applicazione;
3. se fallisce la seconda, apri un dialog file open e lo chiedi
all' utente: ricevuta la risposta, ti salvi il valore ottenuto
in uno degli oggetti di cui al punto 1.
-- 
hth, hal

 incriminata (se ve n'č una) e richiami.
Mi sono riletto tutto il 3d ma l'errore che esce fuori qual'č?
Ciao

Premetto che non ho capito tutto quello che hai detto, ma non credo fosse
obbligatorio. La soluzione di camplix non va. Il database è sempre lo
stesso, anzi vi dirò di più. Ho fatto questa prova:
ho preso tutta, dico tutta, la directory del progetto e l'ho spostata in
un'altra posizione sull'hd. Ebbene, non funziona. Niente da fare, NIET,
nada, nothing to do, non funziona. Funziona SOLO in quella directory, e
proprio non si capisce come mai, dal momento che nel codice c'è scritto
chiaramente App.Path bla bla bla
Grazie a tutti per il vostro supporto, siete stati molto cari, ma io sono
quasi sfinito.
Ciao

 installer... solo l'exe e il database.
Poi ci si pensa (puoi "pretendere" di installare in una cartella su C:\ che
esiste sempre o ... quasi), in ogni caso App.Path rende la cartella
dell'EXE, informazione univoca e certa. Prova, giusto per capire se il
problema scompare, a mettere un percorso fisso. Io ho sempre i miei dubbi:
"Password non valida" sarebbe l'ultimo dei messaggio per un file non
trovato, comunque...
E guai a te se sparisci senza raccontarci il problema vero, anche fosse del
tipo "ho fatto una cappella e mi vergogno di confessarla". Claro?!

 Mi sono riletto tutto il 3d ma l'errore che esce fuori qual'č?
Non per toglierti qualcosa, ma il dubbio č lecito, vedi il post iniziale (il
messaggio parrebbe essere "Password non valida")

 chiaramente App.Path bla bla bla
Dì un po', sarà mica che in qualche recondita Sub/Function c'è un esplicito
riferimento a _quella_ cartella?

 tipo "ho fatto una cappella e mi vergogno di confessarla". Claro?!
LOL !
Bye, G.

 incriminata (se ve n'è una) e richiami.
Vi accontento subito e parto dal punto più lontano possibile:
dal menu "edit" tramite la voce "database updater" richiamo un pannello che
contiene una text box nella quale spiego cosa contiene il database (il cui
nome è db1.mdb e la cui password è "pippo" senza apici), e due pulsanti:
fourcc database
audio ID database
il primo richiama il form per l'aggiornamento della tabella "Lista_completa"
contenuta nel database, il secondo richiama un form per aggiornare la
tabella "Audio_codec" contenuta nello steso database. Il codice è questo:
Private Sub Command1_Click(Index As Integer)
    If Command1(0) Then
        Fourcc_updater.Show
    Else
        Audio_codec_updater.Show
    End If
End Sub
Ora, nei due pannelli richiamati da questa sub, nell'evento load c'è la
parte di codice che apre il database. Premetto che ciascuno dei due form
contiene due controlli data. Il primo per interagire col database
direttamente (intendo effettuare le modifiche) ed il secondo per
visualizzare in una dblist il contenuto della tabella cui il form fa
riferimento.
Bene, il codice di uno di questi due form è questo (ve lo riporto
integralmente):
Private Sub Form_Load()
    Data2.Visible = False
    data1.DatabaseName = App.Path & "\db1.mdb"
    data1.Connect = ";PWD=pippo"
    data1.Refresh
    'Impostiamo l'indice da usare
    data1.Recordset.Index = "ID_Audio"
    Label7.Caption = "Ci sono ben " & data1.Recordset.RecordCount & " codec
audio nel database!!!"
    Data2.DatabaseName = data1.DatabaseName
    'data2.Connect = ";PWD=pippo"  ### questa è ommentata, l'ho messa per
dirvi che ho provato anche questa combinazione
    mail.FontUnderline = False
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single,
y As Single)
    mail.FontUnderline = False
End Sub
Private Sub mail_Click()
    Call Link("mailto:
movie...@libero.it
")
End Sub
Private Sub mail_MouseMove(Button As Integer, Shift As Integer, x As Single,
y As Single)
mail.FontUnderline = True
End Sub
Private Sub salva_Click()
    'Salva le modifiche.
    data1.Recordset.Update
    Data2.Refresh
    Label7.Caption = "Ci sono ben " & data1.Recordset.RecordCount & " codec
audio nel database!!!"
    salva.Visible = False
    aggiungi.Caption = "Aggiungi"
    modifica.Caption = "Modifica"
End Sub
Private Sub elimina_Click()
    Dim Risposta As Integer
    'Chiede conferma prima di procedere con l'eliminazione.
    Risposta = MsgBox("Eliminare i dati correnti?", vbQuestion + vbYesNo,
Me.Caption)
    If Risposta = vbYes Then
        'Elimina i dati.
        data1.Recordset.Delete
        'Si sposta nel record precedente.
        data1.Recordset.MovePrevious
    Label7.Caption = "Ci sono ben " & data1.Recordset.RecordCount & " codec
audio nel database!!!"
    End If
End Sub
Private Sub modifica_Click()
        If modifica.Caption = "Modifica" Then
            'Attiva la funzione di modifica.
            data1.Recordset.Edit
            modifica.Caption = "Annulla"
            salva.Visible = True
        Else
            'Annulla le modifiche.
            data1.Recordset.CancelUpdate
            salva.Visible = False
            modifica.Caption = "Modifica"
        End If
End Sub
Private Sub esci_Click(Index As Integer)
    Unload Audio_codec_updater
Come tutti sapete ormai, durante il debug tutto funziona, così come funziona
nella cartella del progetto, altrove no.
Nelle proprietà del controllo data ci sono impostate le seguetni voci:
connect = access (è un database di access 97)
database name = non ho specificato nulla...
DefaultType = Use jet
Recordsettype = table
Recordsource = Audio_codec
per entrambe i controlli data.
L'errore che mi da è:
errore di run-time '3031'
password non valida
sono stato esaustivo?
Chiedo scusa se vi ho scocciato, se volete sapere ancora qualcosa ditemelo.
Sono disposto a mandarvi tutto il sorgente :)
Ciao e GRASSIE

tipo "ho fatto una cappella e mi vergogno di confessarla". Claro?!
dico che, come vedi non mi sono vergognato di dirlo, e nemmeno di
autooffendermi. Sono proprio un... uno sbadato! :)))
Ragazzi che dire? vi ringrazio dal profondo del cuore, e spero che a questo
punto la vostra rabbia non sia nemmeno la metà di quella che mi pervadeva
ieri sera, altrimenti le orecchie mi esploderanno dai fischi! ;)
Ciao e alla prossima, spero meno sofferta, battaglia!
P.S. vale sempre il post sulle directX 8.1 e i Visual basic objects, ho
postato su tutti i NG microsoft in materia... il NULLA! Solo uno dalla
russia che mi hamandato un curriculum... sbagliato persona in pieno, qui
tutto a gratise :(((
Ho trovato un esempio nella SDK e ci sto smanettando, magari vi farò sapere
anche lì se interessa (si accettano collaborazioni).

 ieri sera, altrimenti le orecchie mi esploderanno dai fischi! ;)
Nessuna rabbia! Come si dice, classicamente, "tutto č bene quel che finisce
bene".
Ora (se mi posso permettere) chiudi tutto e bada un po' anche a chi, lě,
"vorrebbe prenderti a schiaffi". ;-)

 "vorrebbe prenderti a schiaffi". ;-)
LOL ma... questa qui non l'ho capita però rido per simpatia.
Sono uno studentello universitario e vivo con altri studenti nessuna donna a
volermi prendere a schiaffi, è lontana a parma siggh!!! Ancora grazie Lupo,
ho già provveduto a mettere i ringraziamenti nel formabout del proggo.
GRAZIE GRAZIE GRAZIE

 LOL ma... questa qui non l'ho capita però rido per simpatia.
Avevi scritto:
"Premessa: ormai andavo avanti per tentativi, provando combinazioni diverse
:'( e già qui qualcuno vorrebbe prendermi a schiaffi"
Quel "qui", evidentemente da me frainteso, mi ha fatto pensare a te in casa,
con la moglie che ti diceva "dobbiamo andare a trovare Franca e poi la zia e
poi a far la spesa e poi, sempre lì, attaccato a quel video, io mi faccio
l'amante, ecco..."

 l'amante, ecco..."
HAHAHA no no, quel qui era riferito al NG. Immaginavo già i programmatori
ca**uti che girano qui che a leggere i miei post sentivano la voglia
crescente di prendermi a ceffoni :)
Ciao