Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh berikut menunjukkan bagaimana SQLBrowseConnect dapat digunakan untuk menelusuri koneksi yang tersedia dengan driver untuk SQL Server. Pertama, aplikasi meminta handle koneksi.
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
Selanjutnya, aplikasi memanggil SQLBrowseConnect dan menentukan driver SQL Server, menggunakan deskripsi driver yang dikembalikan oleh SQLDrivers:
SQLBrowseConnect(hdbc, "DRIVER={SQL Server};", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
Karena ini adalah panggilan pertama ke SQLBrowseConnect, Manajer Driver memuat driver SQL Server dan memanggil fungsi SQLBrowseConnect driver dengan argumen yang sama dengan yang diterimanya dari aplikasi.
Nota
Jika Anda menyambungkan ke penyedia sumber data yang mendukung autentikasi Windows, Anda harus menentukan Trusted_Connection=yes alih-alih ID pengguna dan informasi kata sandi dalam string koneksi.
Driver menentukan bahwa ini adalah panggilan pertama ke SQLBrowseConnect dan mengembalikan atribut koneksi tingkat kedua: server, nama pengguna, kata sandi, nama aplikasi, dan ID stasiun kerja. Untuk atribut server, ia mengembalikan daftar nama server yang valid. Kode pengembalian dari SQLBrowseConnect SQL_NEED_DATA. Berikut adalah string hasil penelusuran:
"SERVER:Server={red,blue,green,yellow};UID:Login ID=?;PWD:Password=?;
*APP:AppName=?;*WSID:WorkStation ID=?;"
Setiap kata kunci dalam string hasil penelusuran diikuti oleh titik dua dan satu atau beberapa kata sebelum tanda sama dengan. Kata-kata ini adalah nama yang mudah digunakan aplikasi untuk membuat kotak dialog. Kata kunci APP dan WSID diawali oleh tanda bintang, yang berarti kata kunci tersebut bersifat opsional. Kata kunci SERVER, UID, dan PWD tidak diawali oleh tanda bintang; nilai harus disediakan untuk nilai tersebut dalam string permintaan penelusuran berikutnya. Nilai untuk kata kunci SERVER mungkin salah satu server yang dikembalikan oleh SQLBrowseConnect atau nama yang disediakan pengguna.
Aplikasi memanggil SQLBrowseConnect lagi, menentukan server hijau dan menghilangkan kata kunci APP dan WSID dan nama yang mudah digunakan setelah setiap kata kunci:
SQLBrowseConnect(hdbc, "SERVER=green;UID=Smith;PWD=Sesame;", SQL_NTS,
BrowseResult, sizeof(BrowseResult), &BrowseResultLen);
Driver mencoba menyambungkan ke server hijau. Jika ada kesalahan nonfatal, seperti pasangan nilai kata kunci yang hilang, SQLBrowseConnect mengembalikan SQL_NEED_DATA dan tetap dalam keadaan yang sama seperti sebelum kesalahan. Aplikasi dapat memanggil SQLGetDiagField atau SQLGetDiagRec untuk menentukan kesalahan. Jika koneksi berhasil, driver mengembalikan SQL_NEED_DATA dan mengembalikan string hasil penelusuran:
"*DATABASE:Database={master,model,pubs,tempdb};
*LANGUAGE:Language={us_english,Franais};"
Karena atribut dalam string ini bersifat opsional, aplikasi dapat menghilangkannya. Namun, aplikasi harus memanggil SQLBrowseConnect lagi. Jika aplikasi memilih untuk menghilangkan nama dan bahasa database, aplikasi menentukan string permintaan penelusuran kosong. Dalam contoh ini, aplikasi memilih database pubs dan memanggil SQLBrowseConnect untuk terakhir kalinya, menghapus kata kunci LANGUAGE dan menghilangkan tanda bintang di depan kata kunci DATABASE:
SQLBrowseConnect(hdbc, "DATABASE=pubs;", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
Karena atribut DATABASE adalah atribut koneksi akhir yang diperlukan oleh driver, proses penjelajahan selesai, aplikasi terhubung ke sumber data, dan SQLBrowseConnect mengembalikan SQL_SUCCESS. SQLBrowseConnect juga mengembalikan string koneksi lengkap sebagai string hasil penelusuran:
"DSN=MySQLServer;SERVER=green;UID=Smith;PWD=Sesame;DATABASE=pubs;"
String koneksi akhir yang dikembalikan oleh driver tidak berisi nama yang mudah digunakan setelah setiap kata kunci, juga tidak berisi kata kunci opsional yang tidak ditentukan oleh aplikasi. Aplikasi dapat menggunakan string ini dengan SQLDriverConnect untuk menyambungkan kembali ke sumber data pada handel koneksi saat ini (setelah terputus) atau untuk menyambungkan ke sumber data pada handel koneksi yang berbeda. Contohnya:
SQLDriverConnect(hdbc, hwnd, BrowseResult, SQL_NTS, ConnStrOut,
sizeof(ConnStrOut), &ConnStrOutLen, SQL_DRIVER_NOPROMPT);