Conectare SQL server
Last Updated: Jan 26 2006 15:09, Started by
RomiBoy
, Dec 14 2005 12:56
·
0
#1
Posted 14 December 2005 - 12:56
Salut baieti.
Am si eu o nedumerire legat de vb6 care il folosesc. Incepator. Am citit prin forum, cum vb6 voua vi se pare usor.OK Am un proiect care citeste tabele dintr-un server SQL. Serverul momentan este instalat la mine pe Comp. OS= XPsp2. Pana acuma e OK. Proiectul functioneaza, dar nu este pentru mine. Este pentru altcineva, care poate avea statii XP si win2000, nu cred ca asta ar fii problema. Numele serverului meu este diferit fatza de numele serverului pe care va fii folosit. Baza de date va avea aceeasi denumire. Cum pot dupa compilare, respectiv instalare, sa se creeze in registrii un camp unde sa pot seta numele serverului la care vreau sa conectez aplicatia. Am mai intrebat in coace si in colo, si mi sa spus ca instalerul face asta, nu Package Wizardul din VB6. Se poate face asa ceva in VB6. Adica instalez aplicatia pe o statie intro retea sau domeniu, apoi sa intru in registrii si sa setez numele serverului din retea sau din domeniu, pe care sa se connecteze aplicatia; baza de date pastreaza acelasi nume si pe un server si pe altul. Pentru conecsiune am folosit mai multe class module, unde am creat componentele pentru connecsiune. Imi sugerati o solutie mai buna pentru conecsiune? Si ce solutii ar fii pentru setarea numelui serverului. Multumesc. Edited by RomiBoy, 14 December 2005 - 13:02. |
#2
Posted 24 January 2006 - 23:22
Solutia pe care o folosesc eu e destul de simpla cred. Trebuie sa ai un file .ini in care citesti setarile. Eu de obicei il pun mereu in folderul unde merge aplicatia adica MACCHINA_INI=app.path & "\" & app.exename & ".ini"
Dim i As Integer Dim tmp As String * 255 Dim MACCHINA_INI As String MACCHINA_INI = APP.Path + "\" + APP.EXEName + ".INI" In file-ul .ini am scris: [PATH] ORACLEService = ServiciulConfigurat UserIDPasswd = user/password in modul am declarat: Public OraService As String Public OraUserIDPasswd As String Public OraSession As Object Public OraDB As Object Cu ajutorul unor API citesc acest file .ini Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long i = GetPrivateProfileString("ORACLE", "ORACLEService", "", tmp, Len(tmp), MACCHINA_INI) OraService = Mid$(tmp, 1, i) i = GetPrivateProfileString("ORACLE", "UserIDPasswd", "", tmp, Len(tmp), MACCHINA_INI) OraUserIDPasswd = Mid$(tmp, 1, i) apoi deschid sesiunea: Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDB = OraSession.OpenDatabase(OraService, OraUserIDPasswd, 0&) pentru a crea un recordset folosesc: sql = "" sql = sql & "SELECT * From " & TABELLA & " Where " etc etc etc Set rst = OraDB.dbcreatedynaset(sql, 0&) Sper ca ti-am fost de folos RomiBoy, on Dec 14 2005, 13:56, said: Salut baieti. Am si eu o nedumerire legat de vb6 care il folosesc. Incepator. Am citit prin forum, cum vb6 voua vi se pare usor.OK Am un proiect care citeste tabele dintr-un server SQL. Serverul momentan este instalat la mine pe Comp. OS= XPsp2. Pana acuma e OK. Proiectul functioneaza, dar nu este pentru mine. Este pentru altcineva, care poate avea statii XP si win2000, nu cred ca asta ar fii problema. Numele serverului meu este diferit fatza de numele serverului pe care va fii folosit. Baza de date va avea aceeasi denumire. Cum pot dupa compilare, respectiv instalare, sa se creeze in registrii un camp unde sa pot seta numele serverului la care vreau sa conectez aplicatia. Am mai intrebat in coace si in colo, si mi sa spus ca instalerul face asta, nu Package Wizardul din VB6. Se poate face asa ceva in VB6. Adica instalez aplicatia pe o statie intro retea sau domeniu, apoi sa intru in registrii si sa setez numele serverului din retea sau din domeniu, pe care sa se connecteze aplicatia; baza de date pastreaza acelasi nume si pe un server si pe altul. Pentru conecsiune am folosit mai multe class module, unde am creat componentele pentru connecsiune. Imi sugerati o solutie mai buna pentru conecsiune? Si ce solutii ar fii pentru setarea numelui serverului. Multumesc. |
#3
Posted 25 January 2006 - 00:41
Folosirea unui fisiere de configurare *.ini este o ideea buna la modul general. Mergand pe aceeasi linie se pot scrie si citi in registrii sistemului de operare date de configurare mult mai simplu decat solutia prezentata mai sus folosinf functiile:
Function GetSetting(AppName As String, Section As String, Key As String, [Default]) As String Member of VBA.Interaction Returns a key setting value from an application's entry in the Windows registrysi Sub SaveSetting(AppName As String, Section As String, Key As String, Setting As String) Member of VBA.Interaction Saves a setting under the specified appname, section and key In ceea ce priveste problema lui romy exista o solutie foarte simpla. ea se numeste SQL Server Client Netweork Utility. Folosind acest utilitar poti sa-ti definesti un alias care sa faca referinta la un alt server SQL. |
#4
Posted 25 January 2006 - 15:24
E interesant ceea ce am citit, o sa incerc sa folosesc si eu solutia aia, din pacate ar trebui cind merg la un client sa pornesc un programel care sa-mi scrie in registru si nu pot face asta, pentru noi e mai usor sa scriem in file .ini deoarece destul de des schimbam/adaugam/stergem setari prin telefon cu clientul, care de multe ori este...bita la capitolul informatica si e mai bine sa nu se obisnuiasca sa bage mina in registre :-)))
Inca ceva, eu ma refeream la Oracle, am citit gresit, era vorba despre sql server, oricum folosim tot asa un file .ini apoi deschidem o connection spre serverul respectiv.Merci marmota pentru comentariu! Ciao |
#5
Posted 25 January 2006 - 22:04
In ceea ce priveste registrii SO m-ai inteles eronat: ideea este sa realizezi un program separat in VB care sa foloseasca cele 2 functii, program care va permite modificarea anumitor setări din acești regiștri.
|
#6
Posted 26 January 2006 - 15:09
"din pacate ar trebui cind merg la un client sa pornesc un programel care sa-mi scrie in registru si nu pot face asta, pentru noi e mai usor sa scriem in file .ini deoarece destul de des schimbam/adaugam/stergem setari prin telefon cu clientul, care de multe ori este...bita la capitolul informatica si e mai bine sa nu se obisnuiasca sa bage mina in registre :-)))
" Pai...exact aia am zis si eu, explicind faptul ca nu e recomandat (in cazul meu) sa-l fac pe client sa porneasca acel programel (pentru simplul motiv ca nu pot sa ma duc eu la el) ca sa schimbe setarile din registru (motivul e simplu...unii sint departe). Dar chestia ta e foarte valabila, o sa incerc sa vad cum as putea face ceva in automatic cind fac un update la vreun program. Merci de sugestie! Ciao |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users