VB 2005 distribuzione applicazioni AIUTO!!!

mercoledì 29 novembre 2006 - 19.00

teomat81 Profilo | Newbie

Aiutoooo!
Premetto che mi stò affacciando al mondo di VB 2005 solo adesso...
stò cercando di trasformare le mie applicazioni VB6 in VB2005 il problema che ho riscontrato è che in VB6 dopo aver installato il runtime le mie applicazioni eseguibili le potevo mettere da qualsiasi parte nel pc e queste funzionavano (che siano in rete o in locale)

mentre con vb 2005 il programma eseguibile che si genera funziona solo sulla macchina con vb2005 installato su tutte le altre macchine niente...ovviamente net framework 2.0 installato

se passo da clickonce mi crea un pacchetto di installazione e allora li funziona!!! ma io non voglio assolutamente fare questo processo!!!!

qualcuno sa darmi una mano!!!

GRAZIE MILLE

0v3rCl0ck Profilo | Guru

Ciao,

dopo avere installato il framework sulla workstation, gli eseguibili di vb2005 devono necessariamente girare, a patto di essersi trascinato oltre all'eseguibile anke tutte le eventuali DLL collegate, inoltre fai attenzione agli eventuali file di configurazione che hai utilizzato ed eventualmente ai permessi sulla cartella dove stai eseguendo il file, comunque il fatto che utilizzando clickonce tutto funziona, io mi orienterei più sul fatto che non sono state incluse tutte le dll durante il porting dell'applicazione.

se riscontri altri problemi, prova a mandarmi il messaggio di errore completo che ti restituisce windows quando tenti di eseguire il file.


Enjoy it

>Aiutoooo!
>Premetto che mi stò affacciando al mondo di VB 2005 solo adesso...
>stò cercando di trasformare le mie applicazioni VB6 in VB2005
>il problema che ho riscontrato è che in VB6 dopo aver installato
>il runtime le mie applicazioni eseguibili le potevo mettere da
>qualsiasi parte nel pc e queste funzionavano (che siano in rete
>o in locale)
>
>mentre con vb 2005 il programma eseguibile che si genera funziona
>solo sulla macchina con vb2005 installato su tutte le altre macchine
>niente...ovviamente net framework 2.0 installato
>
>se passo da clickonce mi crea un pacchetto di installazione e
>allora li funziona!!! ma io non voglio assolutamente fare questo
>processo!!!!
>
>qualcuno sa darmi una mano!!!
>
>GRAZIE MILLE

teomat81 Profilo | Newbie

Grazie mille!!!

ho scoperto che inserivo come riferimento anche adodb.dll che non fa parte .NET... a questo punto mi sorge una domanda...per far funzionare i programmi che usano questo componente come faccio a registrarlo..io parlo da vb6 dipendente e io una dll la mettevo dentro system32 e il gioco era gatto..ho porvato anche adesso a fare così ma niente... devo usare ado di COM?

ancora grazie

0v3rCl0ck Profilo | Guru

carissimo,

non devi assolutamente utilizzare il vecchio ADO, con .NET è stato introdotta la nuova interfaccia dati ADO.NET, ke ti permette di accedere ai dati in maniera al quanto differente dal vecchio ado, ma con notevoli vantaggi, solo ke dovrai trasformare tutto il tuo accesso ai dati, ma non ti spaventare, con qualke classe fatta bene, e con qualke giusta dritta, potrai fare un lavoro eccellente senza perdere troppo tempo (ma un po' ce ne vuole)...

ti faccio giusto un esempietto di accesso ai dati, anche se ti servirebbe tutta una preparazione anche sui componenti come DataSet, DataTable, DataReader...

cmq eccoti qua una prova:

'istanzio una nuova connessione Dim Conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\prova.mdb") 'istanzio un nuovo Command Dim Cmd As New OleDb.OleDbCommand() 'imposto la connessione Cmd.Connection = Conn 'imposto il tipo di comando (in questo caso semplice comando testo sql) Cmd.CommandType = CommandType.Text 'imposto il comando sql Cmd.CommandText = "SELECT * FROM tblProva" 'istanzio un nuovo DataAdapter, passandogli come costruttore il Command creato in precedenza Dim DA As New OleDb.OleDbDataAdapter(Cmd) 'istanzio un nuovo DataTable Dim dt As New DataTable 'apro la connessione Conn.Open() 'riempio il DataTable con le righe di ritorno dalla select impostata nel CommandText DA.Fill(dt) 'chiudo la connessione Conn.Close()

dopo avere effettuato il Fill, nel DataTable "dt" ti ritroverai tutte le righe ritornate dalla select, e potrai scorrerle con un semplice:

For Each dr As DataRow In dt.Rows Console.WriteLine(dr("Colonna1")) Next

oppure assegnarlo come DataSource ad un componente della form, come ad esempio un DataGridView.

ora ti passo qualke link dove puoi documentarti su ADO.NET:

http://www.dotnethell.it/articles/TutorialADONET.aspx
http://www.aspitalia.com/articoli/asp.net/adodotnet.aspx

e cmq sempre valida la documentazione ufficiale microsoft: http://msdn2.microsoft.com/en-us/library/default.aspx

spero di esserti stato di aiuto, se hai bisogno di qualke delucidazione in più chiedi pure


Enjoy it

teomat81 Profilo | Newbie

GRAZIEE!! mi sei stato d'avvero di aiuto!!

un ultima cosa...

avevo già usato dataset per fare delle importazioni da db access a sql con ottimim risultati.

guardando in internet ho trovato un sacco di esempi ma io vorrei capire se esiste una corrispondeza con alcune funzioni di ADO vecchio
tipo:

rs.eof
rs.movenext
rs.fields("nomecolonna").value

ho capito che adesso devo pensare a un recordse come dataset però non riesco a muovermi all'interno e a vedere i valori del campo voluto

grazie ancora

0v3rCl0ck Profilo | Guru

per muoveri all'interno di un DataTable puoi usare il pezzetto di codice ke ti ho scritto nel post precedente:

For Each dr As DataRow In dt.Rows Console.WriteLine(dr("Colonna1")) Next

>GRAZIEE!! mi sei stato d'avvero di aiuto!!
>
>un ultima cosa...
>
>avevo già usato dataset per fare delle importazioni da db access
>a sql con ottimim risultati.
>
>guardando in internet ho trovato un sacco di esempi ma io vorrei
>capire se esiste una corrispondeza con alcune funzioni di ADO
>vecchio
>tipo:
>
>rs.eof
>rs.movenext
>rs.fields("nomecolonna").value

un vecchio ciclo ado potrebbe essere così convertito in ado.net:

Dim Cmd As New OleDb.OleDbCommand("SELECT * FROM tblProva", Conn) Dim DR As OleDb.OleDbDataReader = Cmd.ExecuteReader() Do While DR.Read Console.WriteLine(DR.Item("NomeColonna").ToString()) Loop

dove DR.Read esegue il MoveNext e ritorna la proprietà EOF in un colpo solo.

>
>ho capito che adesso devo pensare a un recordse come dataset
>però non riesco a muovermi all'interno e a vedere i valori del
>campo voluto

il vecchio RecordSet è più simile al nuovo DataReader, xchè sono entrambi "oggetti connessi", tuttavia ti consiglio prima l'approccio diretto ai DataSet e DataTable, documentandoti bene sulla documentazione ufficiale, sopratutto sulle differenze tra DataSet e DataTable. In parole povere si potrebbe esprimere il DataSet come contenitore di DataTable, ed il DataTable come contenitore di Record, ed il DataAdapter il motore di riempimento dei suddetti, motore ke inoltre è in grado di reperire anke lo Schema delle tabella del DataBase.

>
>grazie ancora
>


accetta la risposta che chiudiamo il thread =)


Enjoy it
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5