DCL 3.7.4
Loading...
Searching...
No Matches
PeModuleMain.cpp File Reference
#include <dcl/Config.h>
#include <string.h>
#include <locale.h>
#include <dcl/_stdlib.h>
#include <dcl/Object.h>
#include <dcl/SQLCore.h>
#include "PeConnection.h"

Go to the source code of this file.

Macros

#define __TRACE_THIS   0
#define __DCL_TRACE0_N(fmt)
#define __DCL_TRACE1_N(fmt, arg)
#define __DCL_TRACE2_N(fmt, arg1, arg2)
#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
#define __DCL_TRACE4_N(fmt, arg1, arg2, arg3, arg4)

Functions

SQL::ConnectionCreateConnectionInstance ()
bool ModuleInitialize ()
bool ModuleCleanup ()

Variables

DCL_DSO_EXPORT SQL::DRIVER_MODULE DCL_DSO_ENTRY_POINT

Macro Definition Documentation

◆ __DCL_TRACE0_N

#define __DCL_TRACE0_N ( fmt)

Definition at line 30 of file PeModuleMain.cpp.

◆ __DCL_TRACE1_N

#define __DCL_TRACE1_N ( fmt,
arg )

Definition at line 31 of file PeModuleMain.cpp.

◆ __DCL_TRACE2_N

#define __DCL_TRACE2_N ( fmt,
arg1,
arg2 )

Definition at line 32 of file PeModuleMain.cpp.

◆ __DCL_TRACE3_N

#define __DCL_TRACE3_N ( fmt,
arg1,
arg2,
arg3 )

Definition at line 33 of file PeModuleMain.cpp.

◆ __DCL_TRACE4_N

#define __DCL_TRACE4_N ( fmt,
arg1,
arg2,
arg3,
arg4 )

Definition at line 34 of file PeModuleMain.cpp.

◆ __TRACE_THIS

#define __TRACE_THIS   0

Definition at line 22 of file PeModuleMain.cpp.

Function Documentation

◆ CreateConnectionInstance()

SQL::Connection * CreateConnectionInstance ( )

Definition at line 66 of file PeModuleMain.cpp.

67{
68 return new PeConnection(_serverTitle);
69}

◆ ModuleCleanup()

bool ModuleCleanup ( )

Definition at line 113 of file PeModuleMain.cpp.

114{
115 return true;
116}

◆ ModuleInitialize()

bool ModuleInitialize ( )

Definition at line 71 of file PeModuleMain.cpp.

72{
73 /*
74 * LANG에 UTF-8이 없는 경우 LANG을 변경한다.
75 */
76 ByteStringBuilder sb;
77 char* lang = getenv("LANG");
78 if (!lang) {
79 // current locale
80 lang = setlocale(LC_CTYPE, NULL);
81 if (!(lang && strchr(lang, '.'))) {
82 // set default locale
83 lang = setlocale(LC_ALL, "");
84 }
85 }
86 if (lang) {
87 ByteString lang_ = ByteString(lang);
88 ByteString lower = lang_.toLowerCase();
89 if (!lower.contains("utf8")) {
90 if (lower.contains("ko") || lower.contains("kr")) {
91 sb.append("ko_KR");
92 }
93 else {
94 size_t index = lang_.indexOf(L'.');
95 sb.append(index == (size_t)-1 ?
96 lang_ : lang_.substring(0, index));
97 }
98 sb.append(".UTF-8");
99 }
100 }
101 else {
102 sb = "C.UTF-8";
103 }
104
105 if (sb.length() > 0) {
106 ByteString langUTF8 = sb.toByteString();
107 __DCL_TRACE1_N(L"setenv LANG=[%hs]\n", langUTF8.data());
108 return setenv("LANG", langUTF8, 1) == 0;;
109 }
110 return true;
111}
#define NULL
Definition Config.h:312
#define __DCL_TRACE1_N(fmt, arg)

Variable Documentation

◆ DCL_DSO_ENTRY_POINT

DCL_DSO_EXPORT SQL::DRIVER_MODULE DCL_DSO_ENTRY_POINT
Initial value:
=
{
__T("DCL SQL Adapter for PostgreSQL Database Server"),
_serverTitle,
}
#define DCL_BUILD_FLAG
Definition Config.h:362
#define DCL_SQL_DRIVER_MODULE
Definition Config.h:353
bool ModuleInitialize()
bool ModuleCleanup()
SQL::Connection * CreateConnectionInstance()
#define __T(str)
Definition Object.h:60
#define DCL_SQL_VERSION
#define __BUILD_TIMESTAMP__
#define DCL_VERSION
#define DCL_SQL_VERSION_STRING

Definition at line 121 of file PeModuleMain.cpp.

122{
123 // DCL common members
124 sizeof(SQL::DRIVER_MODULE), // structure size
128 DCL_SQL_DRIVER_MODULE, // module type
129 __T("DCL SQL Adapter for PostgreSQL Database Server"),
130
131 // private members
133 _serverTitle,
138};