📄 sqltest.cpp
字号:
#define _CRT_SECURE_NO_DEPRECATE 1#include <stdio.h> // for sa_printf#include <SQLAPI.h> // main SQLAPI++ header#if defined(SA_UNICODE)#ifndef SQLAPI_WIN32#include <wchar.h>#include <wctype.h>#endif#define sa_printf wprintf#define sa_scanf wscanf#define sa_getchar getwchar #else#define sa_printf printf#define sa_scanf scanf #define sa_getchar getchar #endifint main(int/* argc*/, char* /* argv[]*/){ SAConnection con; // print menu sa_printf(_TSA("1.\tOracle\n")); sa_printf(_TSA("2.\tSQL Server\n")); sa_printf(_TSA("3.\tDB2\n")); sa_printf(_TSA("4.\tInformix\n")); sa_printf(_TSA("5.\tSybase\n")); sa_printf(_TSA("6.\tInterBase\n")); sa_printf(_TSA("7.\tSQLBase\n")); sa_printf(_TSA("8.\tMySQL\n")); sa_printf(_TSA("9.\tPostrgeSQL\n")); sa_printf(_TSA("0.\tODBC\n")); sa_printf(_TSA("a.\tSQLite\n")); SAChar ch = sa_getchar(); try { switch(ch) { case _TSA('1'): con.setClient(SA_Oracle_Client); break; case _TSA('2'): con.setClient(SA_SQLServer_Client); break; case _TSA('3'): con.setClient(SA_DB2_Client); break; case _TSA('4'): con.setClient(SA_Informix_Client); break; case _TSA('5'): con.setClient(SA_Sybase_Client); break; case _TSA('6'): con.setClient(SA_InterBase_Client); break; case _TSA('7'): con.setClient(SA_SQLBase_Client); break; case _TSA('8'): con.setClient(SA_MySQL_Client); break; case _TSA('9'): con.setClient(SA_PostgreSQL_Client); break; case _TSA('0'): con.setClient(SA_ODBC_Client); break; case _TSA('a'): con.setClient(SA_SQLite_Client); break; default: return 0; } long nVersionClient = con.ClientVersion(); if(nVersionClient) { short minor = (short)(nVersionClient & 0xFFFF); short major = (short)(nVersionClient >> 16); sa_printf(_TSA("Client version: %hd.%hd\n"), major, minor); } else { sa_printf(_TSA("Client version: unknown before connection\n")); } sa_printf(_TSA("Database name (connection string):\t")); SAString sDatabase; sa_scanf(_TSA("%s"), sDatabase.GetBuffer(1024)); sDatabase.ReleaseBuffer(); sa_printf(_TSA("User name:\t")); SAString sUsername; sa_scanf(_TSA("%s"), sUsername.GetBuffer(1024)); sUsername.ReleaseBuffer(); sa_printf(_TSA("Password:\t")); SAString sPassword; sa_scanf(_TSA("%s"), sPassword.GetBuffer(1024)); sPassword.ReleaseBuffer(); con.Connect(sDatabase, sUsername, sPassword); long nVersionServer = con.ServerVersion(); short minor = (short)(nVersionServer & 0xFFFF); short major = (short)(nVersionServer >> 16); sa_printf(_TSA("Server: %s\n"), (const SAChar*)con.ServerVersionString()); sa_printf(_TSA("Server version: %hd.%hd\n"), major, minor); if(!nVersionClient) { nVersionClient = con.ClientVersion(); if(nVersionClient) { short minor = (short)(nVersionClient & 0xFFFF); short major = (short)(nVersionClient >> 16); sa_printf(_TSA("Client version: %hd.%hd\n"), major, minor); } else { sa_printf(_TSA("Client version: unknown after connection\n")); } } } catch(SAException &x) { // SAConnection::Rollback() // can also throw an exception // (if a network error for example), // we will be ready try { // on error rollback changes con.Rollback(); } catch(SAException &) { } // print error message sa_printf(_TSA("Error text: %s\n"), (const SAChar*)x.ErrText()); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -