SOCPP.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #define UNICODE
  2. #define _UNICODE
  3. #include <windows.h>
  4. #include <initguid.h>
  5. #include <tchar.h>
  6. #include <sqloleid.h>
  7. #include <sqlole.h>
  8. int main (void)
  9. {
  10. HRESULT hr;
  11. if FAILED(hr = CoInitialize (NULL))
  12. {
  13. _tprintf(TEXT("CoInitialize Failedn"));
  14. return (0);
  15. }
  16. LPSQLOLESERVER pSQLServer = NULL;
  17. if FAILED(hr = CoCreateInstance(CLSID_SQLOLEServer, NULL, CLSCTX_INPROC_SERVER,
  18. IID_ISQLOLEServer, (LPVOID*)&pSQLServer))
  19. {
  20. _tprintf(TEXT("CoCreateInstance Failedn"));
  21. return (0);
  22. }
  23. pSQLServer->SetLoginTimeout(10);
  24. if FAILED(hr = pSQLServer->Connect(TEXT(""),TEXT("sa"),TEXT("")))
  25. {
  26. _tprintf(TEXT("Connect failedn"));
  27. LPSUPPORTERRORINFO pSEI = NULL;
  28. if SUCCEEDED(pSQLServer->QueryInterface(IID_ISupportErrorInfo, (LPVOID*)&pSEI))
  29. {
  30. if SUCCEEDED(pSEI->InterfaceSupportsErrorInfo(IID_ISQLOLEServer))
  31. {
  32. LPERRORINFO pEI = NULL;
  33. GetErrorInfo (0, &pEI);
  34. SQLOLE_BSTR strDescription, strSource;
  35. pEI->GetDescription (&strDescription);
  36. pEI->GetSource (&strSource);
  37. _tprintf(TEXT("%s returned error %d: %sn"),
  38. strSource,
  39. SCODE_CODE(hr),
  40. strDescription);
  41. pEI->Release ();
  42. }
  43. }
  44. else
  45. {
  46. _tprintf(TEXT("Error %dn"), HRESULT_CODE(hr));
  47. }
  48. pSEI->Release ();
  49. else
  50. {
  51. SQLOLE_BSTR str;
  52. pSQLServer->GetVersionString(&str);
  53. _tprintf(TEXT("%sn"),str);
  54. LPSQLOLEAPPLICATION pApp = NULL;
  55. pSQLServer->GetApplication(&pApp);
  56. pApp->GetName(&str);
  57. _tprintf(TEXT("%sn"),str);
  58. SysFreeString((BSTR)str);
  59. LONG ver;
  60. pSQLServer->GetVersionMajor(&ver);
  61. _tprintf(TEXT("%dn"),ver);
  62. }
  63. pSQLServer->Release ();
  64. CoUninitialize ();
  65. return (0);
  66. }