DCL 4.0
Loading...
Searching...
No Matches
IBField.cpp File Reference
#include <dcl/Config.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ibase.h>
#include <dcl/Object.h>
#include <dcl/Numeric.h>
#include <dcl/BytesOutputStream.h>
#include <dcl/Charset.h>
#include <dcl/SQLCore.h>
#include "IBConnection.h"
#include "IBQuery.h"
#include "IBField.h"

Go to the source code of this file.

Classes

union  __INT_TYPE

Macros

#define __SQLTYPE_IS(__sqltype)
#define SQLTYPE_NAME(_dataType, name)

Functions

__DCL_BEGIN_NAMESPACE IMPLEMENT_CLASSINFO (IBField, SQL::Field) IBField
const wchar_t * __dataTypeName (const XSQLVAR *_sqlvar)
int __ABS (int n)
size_t __MIN (size_t x, size_t y)

Macro Definition Documentation

◆ __SQLTYPE_IS

#define __SQLTYPE_IS ( __sqltype)
Value:
((__sqlvar->sqltype & ~1) == __sqltype)

◆ SQLTYPE_NAME

#define SQLTYPE_NAME ( _dataType,
name )
Value:
case _dataType : return L ## name

Definition at line 197 of file IBField.cpp.

Function Documentation

◆ __ABS()

int __ABS ( int n)
inline

Definition at line 1031 of file IBField.cpp.

1031 {
1032 return n < 0 ? -n : n;
1033}
void CharsetConvertException *size_t n
Definition SQLField.cpp:253

◆ __dataTypeName()

const wchar_t * __dataTypeName ( const XSQLVAR * _sqlvar)

Definition at line 199 of file IBField.cpp.

200{
201 switch(_sqlvar->sqltype & ~1) {
202 case SQL_SHORT:
203 case SQL_LONG:
204 case SQL_INT64: {
205 if (_sqlvar->sqlscale) {
206#ifdef __DCL_DEBUG
207 switch (_sqlvar->sqltype & ~1) {
208 SQLTYPE_NAME(SQL_SHORT, "DECIMAL(16)");
209 SQLTYPE_NAME(SQL_LONG, "DECIMAL(32)");
210 SQLTYPE_NAME(SQL_INT64, "DECIMAL(64)");
211 }
212#else
213 return L"DECIMAL";
214#endif
215 }
216 else {
217 switch (_sqlvar->sqltype & ~1) {
218 SQLTYPE_NAME(SQL_SHORT, "SMALLINT");
219 SQLTYPE_NAME(SQL_LONG, "INTEGER");
220 SQLTYPE_NAME(SQL_INT64, "INT64");
221 }
222 }
223 }
224 SQLTYPE_NAME(SQL_FLOAT, "FLOAT");
225 SQLTYPE_NAME(SQL_DOUBLE, "DOUBLE");
226 SQLTYPE_NAME(SQL_TYPE_TIME, "TIME");
227 SQLTYPE_NAME(SQL_TYPE_DATE, "DATE");
228 SQLTYPE_NAME(SQL_TIMESTAMP, "TIMESTAMP");
229 SQLTYPE_NAME(SQL_TEXT, "CHAR");
230 SQLTYPE_NAME(SQL_VARYING, "VARCHAR");
231 case SQL_BLOB: {
232 if (_sqlvar->sqlsubtype == 1)
233 return L"BLOB(TEXT)";
234 else
235 return L"BLOB";
236 }
237 }
238 return L"Unknown Type: Driver is not Support";
239}
#define SQLTYPE_NAME(_dataType, name)
Definition IBField.cpp:197

◆ __MIN()

size_t __MIN ( size_t x,
size_t y )
inline

Definition at line 1223 of file IBField.cpp.

1224{
1225 return x < y ? x : y;
1226}

◆ IMPLEMENT_CLASSINFO()

__DCL_BEGIN_NAMESPACE IMPLEMENT_CLASSINFO ( IBField ,
SQL::Field  )

Definition at line 29 of file IBField.cpp.

34 : Field(NULL)
35{
36 __sqlvar = NULL;
37 __indicator = 0; /* NOT NULL의 경우 체크하지 않는다. 때문에 초기값은
38 NOT NULL (0) 으로 둔다. */
39
40 __maxDataSize = 0;
41 __dataSize = 0;
42}
#define NULL
Definition Config.h:340