Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki örnekte SQLBrowseConnect'in SQL Server sürücüsüyle kullanılabilen bağlantılara göz atmak için nasıl kullanılabileceğini göstermektedir. İlk olarak, uygulama bir bağlantı kimliği istemektedir.
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
Ardından, uygulama SQLBrowseConnect'i çağırır ve SQLDrivers tarafından döndürülen sürücü açıklamasını kullanarak SQL Server sürücüsünü belirtir:
SQLBrowseConnect(hdbc, "DRIVER={SQL Server};", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
Bu SQLBrowseConnect'e yapılan ilk çağrı olduğundan, Sürücü Yöneticisi SQL Server sürücüsünü yükler ve sürücünün SQLBrowseConnect işlevini uygulamadan aldığı bağımsız değişkenlerle çağırır.
Uyarı
Windows kimlik doğrulamasını destekleyen bir veri kaynağı sağlayıcısına bağlanıyorsanız, bağlantı dizesinde kullanıcı kimliği ve parola bilgileri yerine belirtmeniz Trusted_Connection=yes gerekir.
Sürücü bunun SQLBrowseConnect'e yapılan ilk çağrı olduğunu belirler ve ikinci bağlantı öznitelik düzeyini döndürür: sunucu, kullanıcı adı, parola, uygulama adı ve iş istasyonu kimliği. Sunucu özniteliği için geçerli sunucu adlarının listesini döndürür. SQLBrowseConnect'ten dönüş kodu SQL_NEED_DATA. İşte tarama sonuç metni:
"SERVER:Server={red,blue,green,yellow};UID:Login ID=?;PWD:Password=?;
*APP:AppName=?;*WSID:WorkStation ID=?;"
Göz atma sonuç dizesindeki her anahtar sözcüğün ardından iki nokta ve eşittir işaretinden önce bir veya daha fazla sözcük bulunur. Bu sözcükler, bir uygulamanın iletişim kutusu oluşturmak için kullanabileceği kolay addır. APP ve WSID anahtar sözcüklerine ön ek olarak bir yıldız işareti eklenir ve bu da isteğe bağlı oldukları anlamına gelir. SERVER, UID ve PWD anahtar sözcüklerine yıldız işareti eklenmez; değerleri bir sonraki gözatma isteği dizesinde bunlar için sağlanmalıdır. SERVER anahtar sözcüğü için değer, SQLBrowseConnect tarafından döndürülen sunuculardan biri veya kullanıcı tarafından sağlanan bir ad olabilir.
Uygulama, yeşil sunucuyu belirtip APP ve WSID anahtar sözcüklerini ve her anahtar sözcüğün ardından kullanıcı dostu adları atlayarak SQLBrowseConnect'i yeniden çağırır:
SQLBrowseConnect(hdbc, "SERVER=green;UID=Smith;PWD=Sesame;", SQL_NTS,
BrowseResult, sizeof(BrowseResult), &BrowseResultLen);
Sürücü yeşil sunucuya bağlanmayı dener. Eksik anahtar sözcük-değer çifti gibi önemli olmayan hatalar varsa , SQLBrowseConnect SQL_NEED_DATA döndürür ve hatadan öncekiyle aynı durumda kalır. Uygulama, hatayı belirlemek için SQLGetDiagField veya SQLGetDiagRec'i çağırabilir. Bağlantı başarılı olursa, sürücü SQL_NEED_DATA döndürür ve tarama sonuç dizesini verir.
"*DATABASE:Database={master,model,pubs,tempdb};
*LANGUAGE:Language={us_english,Franais};"
Bu dizedeki öznitelikler isteğe bağlı olduğundan, uygulama bunları atlayabilir. Ancak uygulamanın SQLBrowseConnect'i yeniden çağırması gerekir. Uygulama veritabanı adını ve dilini atmayı seçerse boş bir gözatma isteği dizesi belirtir. Bu örnekte uygulama pubs veritabanını seçer ve SQLBrowseConnect'i son kez çağırır ve DATABASE anahtar sözcüğünden önce LANGUAGE anahtar sözcüğünü ve yıldız işareti atlar:
SQLBrowseConnect(hdbc, "DATABASE=pubs;", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
DATABASE özniteliği sürücünün gerektirdiği son bağlantı özniteliği olduğundan gözatma işlemi tamamlanır, uygulama veri kaynağına bağlanır ve SQLBrowseConnect SQL_SUCCESS döndürür. SQLBrowseConnect , göz atma sonuç dizesi olarak tam bağlantı dizesini de döndürür:
"DSN=MySQLServer;SERVER=green;UID=Smith;PWD=Sesame;DATABASE=pubs;"
Sürücü tarafından döndürülen son bağlantı dizesi, her anahtar sözcüğün ardından kullanıcı dostu adları veya uygulama tarafından belirtilmeyen isteğe bağlı anahtar sözcükleri içermez. Uygulama, geçerli bağlantı tanıtıcısındaki veri kaynağına yeniden bağlanmak (bağlantı kesildikten sonra) veya farklı bir bağlantı tutamacıyla veri kaynağına bağlanmak için SQLDriverConnect ile bu dizeyi kullanabilir. Örneğin:
SQLDriverConnect(hdbc, hwnd, BrowseResult, SQL_NTS, ConnStrOut,
sizeof(ConnStrOut), &ConnStrOutLen, SQL_DRIVER_NOPROMPT);