1 Star 0 Fork 53

huangjiajun/openGauss-connector-odbc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
dlg_specific.h 10.91 KB
一键复制 编辑 原始数据 按行查看 历史
zhangxubo 提交于 2022-03-11 17:10 . add 3.0.0 patch file
/* File: dlg_specific.h
*
* Description: See "dlg_specific.c"
*
* Comments: See "readme.txt" for copyright and license information.
*
*/
#ifndef __DLG_SPECIFIC_H__
#define __DLG_SPECIFIC_H__
#include "psqlodbc.h"
#ifdef WIN32
#include <windowsx.h>
#include "resource.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Unknown data type sizes */
#define UNKNOWNS_AS_MAX 0
#define UNKNOWNS_AS_DONTKNOW 1
#define UNKNOWNS_AS_LONGEST 2
/* ODBC initialization files */
#ifndef WIN32
#define ODBC_INI ".odbc.ini"
#define ODBCINST_INI "odbcinst.ini"
#else
#define ODBC_INI "ODBC.INI"
#define ODBCINST_INI "ODBCINST.INI"
#endif
#define ODBC_DATASOURCES "ODBC Data Sources"
#define INVALID_DRIVER " @@driver not exist@@ "
#ifdef UNICODE_SUPPORT
#define INI_DSN "PostgreSQL35W"
#else
#define INI_DSN "PostgreSQL30"
#endif /* UNICODE_SUPPORT */
#define INI_KDESC "Description" /* Data source
* description */
#define INI_SERVER "Servername" /* Name of Server
* running the Postgres
* service */
#define SPEC_SERVER "server"
#define INI_PORT "Port" /* Port on which the
* Postmaster is listening */
#define INI_DATABASE "Database" /* Database Name */
#define INI_UID "UID" /* Default User Name */
#define INI_USERNAME "Username" /* Default User Name */
#define INI_PASSWORD "Password" /* Default Password */
#define INI_ABBREVIATE "CX"
#define INI_DEBUG "Debug" /* Debug flag */
#define ABBR_DEBUG "B2"
#define INI_FETCH "Fetch" /* Fetch Max Count */
#define ABBR_FETCH "A7"
/*
* "Socket", abbreviated as "A8" was used for socket buffer. Now that we do
* everything through libpq, it's not used
*/
#define INI_READONLY "ReadOnly" /* Database is read only */
#define ABBR_READONLY "A0"
#define INI_COMMLOG "CommLog" /* Communication to
* backend logging */
#define ABBR_COMMLOG "B3"
#define INI_PROTOCOL "Protocol" /* Controls rollback-on-error
* behavior. Called "Protocol"
* for historical reasons */
#define ABBR_PROTOCOL "A1"
/* "Optimizer", abbreviated to B4 used to stand for "disable genetic query
* optimizer". No longer supported, you can use generic ConnSettings instead.
#define INI_OPTIMIZER "Optimizer"
#define ABBR_OPTIMIZER "B4"
*/
/* "Ksqo", abbreviated to B5 was used with pre-7.1 server versions for
* "keyset query optimization". No longer used.
#define INI_KSQO "Ksqo"
#define ABBR_KSQO "B5"
*/
#define INI_CONNSETTINGS "ConnSettings" /* Anything to send to
* backend on successful
* connection */
#define ABBR_CONNSETTINGS "A6"
#define INI_UNIQUEINDEX "UniqueIndex" /* Recognize unique
* indexes */
#define INI_UNKNOWNSIZES "UnknownSizes" /* How to handle unknown
* result set sizes */
#define ABBR_UNKNOWNSIZES "A9"
/* "CancelAsFreeStmt", abbreviated to "C1" was used with ODBC versions older
* than 3.51. It was a hack that made SQLCancel to imply
* SQLFreeStmt(SQL_CLOSE). It never had an effect in > 3.51 mode.
#define INI_CANCELASFREESTMT "CancelAsFreeStmt"
#define ABBR_CANCELASFREESTMT "C1"
*/
#define INI_USEDECLAREFETCH "UseDeclareFetch" /* Use Declare/Fetch
* cursors */
#define ABBR_USEDECLAREFETCH "B6"
#define INI_FOREXTENSIONCONNECTOR "ForExtensionConnector"
/* More ini stuff */
#define INI_TEXTASLONGVARCHAR "TextAsLongVarchar"
#define ABBR_TEXTASLONGVARCHAR "B7"
#define INI_UNKNOWNSASLONGVARCHAR "UnknownsAsLongVarchar"
#define ABBR_UNKNOWNSASLONGVARCHAR "B8"
#define INI_BOOLSASCHAR "BoolsAsChar"
#define ABBR_BOOLSASCHAR "B9"
#define INI_MAXVARCHARSIZE "MaxVarcharSize"
#define ABBR_MAXVARCHARSIZE "B0"
#define INI_MAXLONGVARCHARSIZE "MaxLongVarcharSize"
#define ABBR_MAXLONGVARCHARSIZE "B1"
#define INI_FAKEOIDINDEX "FakeOidIndex"
#define ABBR_FAKEOIDINDEX "A2"
#define INI_SHOWOIDCOLUMN "ShowOidColumn"
#define ABBR_SHOWOIDCOLUMN "A3"
#define INI_ROWVERSIONING "RowVersioning"
#define ABBR_ROWVERSIONING "A4"
#define INI_SHOWSYSTEMTABLES "ShowSystemTables"
#define ABBR_SHOWSYSTEMTABLES "A5"
#define INI_LIE "Lie"
#define INI_PARSE "Parse"
#define ABBR_PARSE "C0"
#define INI_EXTRASYSTABLEPREFIXES "ExtraSysTablePrefixes"
#define ABBR_EXTRASYSTABLEPREFIXES "C2"
#define INI_TRANSLATIONNAME "TranslationName"
#define INI_TRANSLATIONDLL "TranslationDLL"
#define INI_TRANSLATIONOPTION "TranslationOption"
/*
* "DisallowPremature", abbreviated "C3", used to mean that we should not
* execute a statement prematurely, before SQLExecute() when e.g.
* SQLPrepare+SQLDescribeCol is called. We never do that anymore.
*
#define INI_DISALLOWPREMATURE "DisallowPremature"
#define ABBR_DISALLOWPREMATURE "C3"
*/
#define INI_UPDATABLECURSORS "UpdatableCursors"
#define ABBR_UPDATABLECURSORS "C4"
#define INI_LFCONVERSION "LFConversion"
#define ABBR_LFCONVERSION "C5"
#define INI_TRUEISMINUS1 "TrueIsMinus1"
#define ABBR_TRUEISMINUS1 "C6"
#define INI_INT8AS "BI"
#define INI_BYTEAASLONGVARBINARY "ByteaAsLongVarBinary"
#define ABBR_BYTEAASLONGVARBINARY "C7"
#define INI_USESERVERSIDEPREPARE "UseServerSidePrepare"
#define ABBR_USESERVERSIDEPREPARE "C8"
#define INI_LOWERCASEIDENTIFIER "LowerCaseIdentifier"
#define ABBR_LOWERCASEIDENTIFIER "C9"
#define INI_SSLMODE "SSLmode"
#define ABBR_SSLMODE "CA"
#define INI_EXTRAOPTIONS "AB"
#define INI_LOGDIR "Logdir"
#define INI_KEEPALIVETIME "KeepaliveTime"
#define ABBR_KEEPALIVETIME "D1"
#define INI_KEEPALIVEINTERVAL "KeepaliveInterval"
#define ABBR_KEEPALIVEINTERVAL "D2"
#define INI_PQOPT "pqopt"
#define ABBR_PQOPT "D5"
#define INI_DTCLOG "Dtclog"
/* "PreferLibpq", abbreviated "D4", used to mean whether to prefer libpq.
* libpq is now required
#define INI_PREFERLIBPQ "PreferLibpq"
#define ABBR_PREFERLIBPQ "D3"
*/
#define ABBR_XAOPT "D4"
#define INI_CONNECTIONEXTRAINFO "ConnectionExtraInfo"
/* Whether to use batch protocol ('U' message) while batch executing. */
#define INI_USEBATCHPROTOCOL "UseBatchProtocol"
#define INI_AUTOBALANCE "AutoBalance" /* Control the switch of autobalance */
#define ABBR_AUTOBALANCE "AuB"
#define INI_REFRESHCNLISTTIME "RefreshCNListTime"
#define ABBR_REFRESHCNLISTTIME "RT"
#define INI_PRIORITY "Priority"
#define ABBR_PRIORITY "PR"
#define SSLMODE_DISABLE "disable"
#define SSLMODE_ALLOW "allow"
#define SSLMODE_PREFER "prefer"
#define SSLMODE_REQUIRE "require"
#define SSLMODE_VERIFY_CA "verify-ca"
#define SSLMODE_VERIFY_FULL "verify-full"
#define SSLLBYTE_DISABLE 'd'
#define SSLLBYTE_ALLOW 'a'
#define SSLLBYTE_PREFER 'p'
#define SSLLBYTE_REQUIRE 'r'
#define SSLLBYTE_VERIFY 'v'
#ifdef _HANDLE_ENLIST_IN_DTC_
#define INI_XAOPT "XaOpt"
#endif /* _HANDLE_ENLIST_IN_DTC_ */
/* Bit representation for abbreviated connection strings */
#define BIT_LFCONVERSION (1L)
#define BIT_UPDATABLECURSORS (1L<<1)
#define BIT_UNIQUEINDEX (1L<<3)
#define BIT_UNKNOWN_DONTKNOW (1L<<6)
#define BIT_UNKNOWN_ASMAX (1L<<7)
#define BIT_COMMLOG (1L<<10)
#define BIT_DEBUG (1L<<11)
#define BIT_PARSE (1L<<12)
#define BIT_CANCELASFREESTMT (1L<<13)
#define BIT_USEDECLAREFETCH (1L<<14)
#define BIT_READONLY (1L<<15)
#define BIT_TEXTASLONGVARCHAR (1L<<16)
#define BIT_UNKNOWNSASLONGVARCHAR (1L<<17)
#define BIT_BOOLSASCHAR (1L<<18)
#define BIT_ROWVERSIONING (1L<<19)
#define BIT_SHOWSYSTEMTABLES (1L<<20)
#define BIT_SHOWOIDCOLUMN (1L<<21)
#define BIT_FAKEOIDINDEX (1L<<22)
#define BIT_TRUEISMINUS1 (1L<<23)
#define BIT_BYTEAASLONGVARBINARY (1L<<24)
#define BIT_USESERVERSIDEPREPARE (1L<<25)
#define BIT_LOWERCASEIDENTIFIER (1L<<26)
#define EFFECTIVE_BIT_COUNT 28
/* Mask for extra options */
#define BIT_FORCEABBREVCONNSTR 1L
#define BIT_FAKE_MSS (1L << 1)
#define BIT_BDE_ENVIRONMENT (1L << 2)
#define BIT_CVT_NULL_DATE (1L << 3)
#define BIT_ACCESSIBLE_ONLY (1L << 4)
#define BIT_IGNORE_ROUND_TRIP_TIME (1L << 5)
#define BIT_DISABLE_KEEPALIVE (1L << 6)
/* Connection Defaults */
#define DEFAULT_READONLY 0
#define DEFAULT_PROTOCOL "7.4" /* the latest protocol is
* the default */
#define DEFAULT_USEDECLAREFETCH 0
#define DEFAULT_FOREXTENSIONCONNECTOR 1
#define DEFAULT_TEXTASLONGVARCHAR 1
#define DEFAULT_UNKNOWNSASLONGVARCHAR 0
#define DEFAULT_BOOLSASCHAR 1
#define DEFAULT_UNIQUEINDEX 1 /* dont recognize */
#define DEFAULT_COMMLOG 0 /* dont log */
#define DEFAULT_DEBUG 0
#define DEFAULT_UNKNOWNSIZES UNKNOWNS_AS_MAX
#define DEFAULT_FAKEOIDINDEX 0
#define DEFAULT_SHOWOIDCOLUMN 0
#define DEFAULT_ROWVERSIONING 0
#define DEFAULT_SHOWSYSTEMTABLES 0 /* dont show system tables */
#define DEFAULT_LIE 0
#define DEFAULT_PARSE 0
#define DEFAULT_CANCELASFREESTMT 0
#define DEFAULT_EXTRASYSTABLEPREFIXES ""
#define DEFAULT_TRUEISMINUS1 0
#define DEFAULT_UPDATABLECURSORS 1
#ifdef WIN32
#define DEFAULT_LFCONVERSION 1
#else
#define DEFAULT_LFCONVERSION 0
#endif /* WIN32 */
#define DEFAULT_INT8AS 0
#define DEFAULT_BYTEAASLONGVARBINARY 1
#define DEFAULT_USESERVERSIDEPREPARE 1
#define DEFAULT_USEBATCHPROTOCOL 1
#define DEFAULT_CONNECTIONEXTRAINFO 0
#define DEFAULT_LOWERCASEIDENTIFIER 0
#define DEFAULT_SSLMODE SSLMODE_DISABLE
#ifdef _HANDLE_ENLIST_IN_DTC_
#define DEFAULT_XAOPT 1
#endif /* _HANDLE_ENLIST_IN_DTC_ */
/* for CC_DSN_info */
#define CONN_DONT_OVERWRITE 0
#define CONN_OVERWRITE 1
/* prototypes */
#ifdef WIN32
void SetDlgStuff(HWND hdlg, const ConnInfo *ci);
void GetDlgStuff(HWND hdlg, ConnInfo *ci);
LRESULT CALLBACK driver_optionsProc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
LRESULT CALLBACK global_optionsProc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
LRESULT CALLBACK ds_options1Proc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
LRESULT CALLBACK ds_options2Proc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
LRESULT CALLBACK ds_options3Proc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
LRESULT CALLBACK manage_dsnProc(HWND hdlg,
UINT wMsg,
WPARAM wParam,
LPARAM lParam);
#endif /* WIN32 */
int write_Ci_Drivers(const char *fileName, const char *sectionName,
const GLOBAL_VALUES *);
int writeDriversDefaults(const char *drivername, const GLOBAL_VALUES *);
void writeDSNinfo(const ConnInfo *ci);
void getDriversDefaults(const char *drivername, GLOBAL_VALUES *);
void getDSNinfo(ConnInfo *ci, const char *configDrvrname);
void makeConnectString(char *connect_string, const ConnInfo *ci, UWORD);
BOOL get_DSN_or_Driver(ConnInfo *ci, const char *attribute, char *value);
BOOL copyConnAttributes(ConnInfo *ci, const char *attribute, char *value);
int getDriverNameFromDSN(const char *dsn, char *driver_name, int namelen);
UInt4 getExtraOptions(const ConnInfo *);
BOOL setExtraOptions(ConnInfo *, const char *str, const char *format);
char *extract_extra_attribute_setting(const pgNAME setting, const char *attr);
signed char ci_updatable_cursors_set(ConnInfo *ci);
void getCiAllDefaults(ConnInfo *ci);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __DLG_SPECIFIC_H__ */
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/b_127/openGauss-connector-odbc.git
git@gitee.com:b_127/openGauss-connector-odbc.git
b_127
openGauss-connector-odbc
openGauss-connector-odbc
master

搜索帮助