|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2817
|
[VB.NET] Creare una funzione per collegare il DB
Ho un sviluppato un programma che avrò un DB SQL SERVER EXPRESS in rete
In pratica nel mio programma mi piaceva mettere una form che: - cercava DB in rete - una volta trovato, lo selezionava e faceva APPLICA Spero di essere stato chiaro. Io adesso per simularlo apro SQL MANGAGER e ricerco il DB in rete poi da li lo salvo Quando eseguo il programma, va a cercare il DB come se fosse in locale, invece è SQL che dirotta il collegamento verso il server. Ciao e grazieeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER Ultima modifica di OrcaAssassina : 09-04-2008 alle 17:55. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
ma per db intendi il server dbms o lo schema?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2817
|
ok
Il server ha il motore SQL.
I client solo le DLL per la connessione. Quindi devo realizzare questa funzione che mi collega il DB pescato in RETE al programma. Sapete consigliarmi qualche guida o tutorial Ciao e grazieeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
Potresti fare un loop sulla rete locale, testando ogni ip, ti faccio degli esempi:
192.168.1.2 192.168.1.3 192.168.1.4 ... 192.168.1.253 192.168.1.254 Facendo il tutto con dei thread. Se ottieni un timeout allora su quell'indirizzo non c'è il DB server, altrimenti ti segni gli indirizzi IP che ti hanno risposto e li presenti ad esempio in una combo. Usa i thread perché il timeout in genere è un minuto e non è il caso di far aspettare 250 minuti ai tuoi clienti
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2817
|
ok
Quote:
Ciao e grazieeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
No però potrei darti delle linee guida
1) Ottieni dal sistema operativo la lista delle interfacce di rete con relativi IP. Eliminando l'interfaccia loopback (127.0.0.1) vedi se ci sono delle reti di tipo locale (ad esempio 192.168.x.x o 10.x.x.x). 2) Fatto ciò crea i thread e ad ognuno assegna un indirizzo IP da scansionare 3) Se il thread N interroga l'indirizzo x.x.x.N ricevendo una qualsivoglia risposta da parte del server (tipo: password errata, connessione riuscita, ecc) allora aggiungi x.x.x.N alla lista delle possibilità. Se invece va in timeout presumibilmente non c'è il server sull'indirizzo x.x.x.N. A me sembra una soluzione valida... adesso dovresti partire tu
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 611
|
Lasciate stare queste soluzioni... la risposta giusta è usare il SQLDMO.
Codice:
Dim oApplication As New SQLDMO.Application
Dim oNameList As SQLDMO.NameList
Dim ServerLocaleTrovato As Boolean = False
Dim NomeServer As String
Dim IndiceServer As Integer = -1
Dim i As Integer
Me.Cursor = Cursors.WaitCursor
oNameList = oApplication.ListAvailableSQLServers
For i = 1 To oNameList.Count
cboServer.Items.Add(oNameList.Item(i))
If UCase(oNameList.Item(i)) = UCase(config.Server) Then
IndiceServer = i - 1
End If
Next
cboServer.SelectedIndex = IndiceServer
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:46.




















