1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137 |
- {$ifdef fpc}
- {$mode objfpc}
- {$macro on}
- {$endif}
- {$h+}
- // define ODBC version 3.52 by default
- {$define ODBCVER:=$0352}
- {$if ODBCVER >= $0300}
- {$define ODBCVER3}
- {$endif}
- {$if ODBCVER >= $0350}
- {$define ODBCVER35}
- {$endif}
- {$ifndef DYNLOADINGODBC}
- {$IFDEF WINDOWS}
- { $linklib odbc32}
- {$ELSE}
- {$linklib odbc}
- {$ENDIF}
- {$endif}
- interface
- uses
- Dynlibs,
- ctypes,
- sysutils;
- {$IFDEF Unix}
- {$DEFINE extdecl:=cdecl}
- const
- odbclib = 'libodbc.'+sharedsuffix;
- {$ENDIF}
- {$IFDEF Windows}
- {$DEFINE extdecl:=stdcall}
- const
- odbclib = 'odbc32.dll';
- {$ENDIF}
- (* DATA TYPES CORRESPONDENCE
- BDE fields ODBC types
- ---------- ------------------
- ftBlob SQL_BINARY
- ftBoolean SQL_BIT
- ftDate SQL_TYPE_DATE
- ftTime SQL_TYPE_TIME
- ftDateTime SQL_TYPE_TIMESTAMP
- ftInteger SQL_INTEGER
- ftSmallint SQL_SMALLINT
- ftFloat SQL_DOUBLE
- ftString SQL_CHAR
- ftMemo SQL_BINARY // SQL_VARCHAR
- *)
- type
- SQLCHAR = cuchar;
- SQLWCHAR = WideChar;
- SQLSCHAR = cschar;
- SQLSMALLINT = csshort;
- SQLUSMALLINT = cushort;
- SQLINTEGER = clong;
- SQLUINTEGER = culong;
- SQLLEN = PtrInt;
- SQLULEN = PtrUInt;
- SQLREAL = cfloat;
- SQLDOUBLE = cdouble;
- SQLFLOAT = cdouble;
- SQLRETURN = SQLSMALLINT;
- SQLPOINTER = pointer;
- SQLHANDLE = pointer;
- SQLHENV = SQLHANDLE;
- SQLHDBC = SQLHANDLE;
- SQLHSTMT = SQLHANDLE;
- SQLHDESC = SQLHANDLE;
- SQLHWND = pointer;
- SQLSETPOSIROW= {$IF DEFINED(CPU64)}cuint64{$ELSE}SQLUSMALLINT{$ENDIF};
- PSQLCHAR = PAnsiChar;
- PSQLWCHAR = PWideChar;
- PSQLSMALLINT = ^SQLSMALLINT;
- PSQLUSMALLINT = ^SQLUSMALLINT;
- PSQLINTEGER = ^SQLINTEGER;
- PSQLUINTEGER = ^SQLUINTEGER;
- PSQLLEN = ^SQLLEN;
- PSQLULEN = ^SQLULEN;
- PSQLREAL = ^SQLREAL;
- PSQLDOUBLE = ^SQLDOUBLE;
- PSQLFLOAT = ^SQLFLOAT;
- PSQLPOINTER = ^SQLPOINTER;
- PSQLHANDLE = ^SQLHANDLE;
- const
- { SQL data type codes }
- SQL_UNKNOWN_TYPE = 0;
- SQL_LONGVARCHAR =(-1);
- SQL_BINARY =(-2);
- SQL_VARBINARY =(-3);
- SQL_LONGVARBINARY =(-4);
- SQL_BIGINT =(-5);
- SQL_TINYINT =(-6);
- SQL_BIT =(-7);
- SQL_WCHAR =(-8);
- SQL_WVARCHAR =(-9);
- SQL_WLONGVARCHAR =(-10);
- {$ifdef ODBCVER35}
- SQL_GUID =(-11);
- {$endif}
- SQL_CHAR = 1;
- SQL_NUMERIC = 2;
- SQL_DECIMAL = 3;
- SQL_INTEGER = 4;
- SQL_SMALLINT = 5;
- SQL_FLOAT = 6;
- SQL_REAL = 7;
- SQL_DOUBLE = 8;
- SQL_DATE = 9;
- {$ifdef ODBCVER3}
- SQL_DATETIME = 9;
- {$endif}
- SQL_TIME = 10;
- {$ifdef ODBCVER3}
- SQL_INTERVAL = 10;
- {$endif}
- SQL_TIMESTAMP = 11;
- SQL_VARCHAR = 12;
- {$ifdef ODBCVER3}
- SQL_TYPE_DATE = 91;
- SQL_TYPE_TIME = 92;
- SQL_TYPE_TIMESTAMP= 93;
- // Microsoft has -150 thru -199 reserved for Microsoft SQL Server Native Client driver usage.
- SQL_SS_VARIANT = -150;
- SQL_SS_UDT = -151;
- SQL_SS_XML = -152;
- SQL_SS_TABLE = -153;
- SQL_SS_TIME2 = -154;
- SQL_SS_TIMESTAMPOFFSET = -155;
- {$endif}
- { interval codes}
- {$ifdef ODBCVER3}
- SQL_CODE_YEAR = 1;
- SQL_CODE_MONTH = 2;
- SQL_CODE_DAY = 3;
- SQL_CODE_HOUR = 4;
- SQL_CODE_MINUTE = 5;
- SQL_CODE_SECOND = 6;
- SQL_CODE_YEAR_TO_MONTH = 7;
- SQL_CODE_DAY_TO_HOUR = 8;
- SQL_CODE_DAY_TO_MINUTE = 9;
- SQL_CODE_DAY_TO_SECOND = 10;
- SQL_CODE_HOUR_TO_MINUTE = 11;
- SQL_CODE_HOUR_TO_SECOND = 12;
- SQL_CODE_MINUTE_TO_SECOND = 13;
- SQL_INTERVAL_YEAR = 100 + SQL_CODE_YEAR;
- SQL_INTERVAL_MONTH = 100 + SQL_CODE_MONTH;
- SQL_INTERVAL_DAY = 100 + SQL_CODE_DAY;
- SQL_INTERVAL_HOUR = 100 + SQL_CODE_HOUR;
- SQL_INTERVAL_MINUTE = 100 + SQL_CODE_MINUTE;
- SQL_INTERVAL_SECOND = 100 + SQL_CODE_SECOND;
- SQL_INTERVAL_YEAR_TO_MONTH = 100 + SQL_CODE_YEAR_TO_MONTH;
- SQL_INTERVAL_DAY_TO_HOUR = 100 + SQL_CODE_DAY_TO_HOUR;
- SQL_INTERVAL_DAY_TO_MINUTE = 100 + SQL_CODE_DAY_TO_MINUTE;
- SQL_INTERVAL_DAY_TO_SECOND = 100 + SQL_CODE_DAY_TO_SECOND;
- SQL_INTERVAL_HOUR_TO_MINUTE = 100 + SQL_CODE_HOUR_TO_MINUTE;
- SQL_INTERVAL_HOUR_TO_SECOND = 100 + SQL_CODE_HOUR_TO_SECOND;
- SQL_INTERVAL_MINUTE_TO_SECOND = 100 + SQL_CODE_MINUTE_TO_SECOND;
- {$else}
- SQL_INTERVAL_YEAR = -80;
- SQL_INTERVAL_MONTH = -81;
- SQL_INTERVAL_YEAR_TO_MONTH = -82;
- SQL_INTERVAL_DAY = -83;
- SQL_INTERVAL_HOUR = -84;
- SQL_INTERVAL_MINUTE = -85;
- SQL_INTERVAL_SECOND = -86;
- SQL_INTERVAL_DAY_TO_HOUR = -87;
- SQL_INTERVAL_DAY_TO_MINUTE = -88;
- SQL_INTERVAL_DAY_TO_SECOND = -89;
- SQL_INTERVAL_HOUR_TO_MINUTE = -90;
- SQL_INTERVAL_HOUR_TO_SECOND = -91;
- SQL_INTERVAL_MINUTE_TO_SECOND = -92;
- {$endif}
- { Unicode data type codes }
- {$ifndef ODBCVER3}
- SQL_UNICODE = -95;
- SQL_UNICODE_VARCHAR = -96;
- SQL_UNICODE_LONGVARCHAR = -97;
- SQL_UNICODE_CHAR = SQL_UNICODE;
- {$else}
- { The previous definitions for SQL_UNICODE_ are historical and obsolete }
- SQL_UNICODE = SQL_WCHAR;
- SQL_UNICODE_VARCHAR = SQL_WVARCHAR;
- SQL_UNICODE_LONGVARCHAR = SQL_WLONGVARCHAR;
- SQL_UNICODE_CHAR = SQL_WCHAR;
- {$endif}
- { C datatype to SQL datatype mapping }
- SQL_C_CHAR = SQL_CHAR;
- SQL_C_WCHAR = SQL_WCHAR;
- SQL_C_TCHAR = {$IFDEF UNICODE}SQL_C_WCHAR{$ELSE}SQL_C_CHAR{$ENDIF};
- SQL_C_LONG = SQL_INTEGER;
- SQL_C_SHORT = SQL_SMALLINT;
- SQL_C_FLOAT = SQL_REAL;
- SQL_C_DOUBLE = SQL_DOUBLE;
- {$ifdef ODBCVER3}
- SQL_C_NUMERIC = SQL_NUMERIC;
- {$endif}
- SQL_C_DEFAULT = 99;
- SQL_SIGNED_OFFSET = -20;
- SQL_UNSIGNED_OFFSET = -22;
- SQL_C_DATE = SQL_DATE;
- SQL_C_TIME = SQL_TIME;
- SQL_C_TIMESTAMP = SQL_TIMESTAMP;
- {$ifdef ODBCVER3}
- SQL_C_TYPE_DATE = SQL_TYPE_DATE;
- SQL_C_TYPE_TIME = SQL_TYPE_TIME;
- SQL_C_TYPE_TIMESTAMP = SQL_TYPE_TIMESTAMP;
- SQL_C_INTERVAL_YEAR = SQL_INTERVAL_YEAR;
- SQL_C_INTERVAL_MONTH = SQL_INTERVAL_MONTH;
- SQL_C_INTERVAL_DAY = SQL_INTERVAL_DAY;
- SQL_C_INTERVAL_HOUR = SQL_INTERVAL_HOUR;
- SQL_C_INTERVAL_MINUTE = SQL_INTERVAL_MINUTE;
- SQL_C_INTERVAL_SECOND = SQL_INTERVAL_SECOND;
- SQL_C_INTERVAL_YEAR_TO_MONTH = SQL_INTERVAL_YEAR_TO_MONTH;
- SQL_C_INTERVAL_DAY_TO_HOUR = SQL_INTERVAL_DAY_TO_HOUR;
- SQL_C_INTERVAL_DAY_TO_MINUTE = SQL_INTERVAL_DAY_TO_MINUTE;
- SQL_C_INTERVAL_DAY_TO_SECOND = SQL_INTERVAL_DAY_TO_SECOND;
- SQL_C_INTERVAL_HOUR_TO_MINUTE = SQL_INTERVAL_HOUR_TO_MINUTE;
- SQL_C_INTERVAL_HOUR_TO_SECOND = SQL_INTERVAL_HOUR_TO_SECOND;
- SQL_C_INTERVAL_MINUTE_TO_SECOND = SQL_INTERVAL_MINUTE_TO_SECOND;
- {$endif}
- SQL_C_BINARY = SQL_BINARY;
- SQL_C_BIT = SQL_BIT;
- {$ifdef ODBCVER3}
- SQL_C_SBIGINT = SQL_BIGINT+SQL_SIGNED_OFFSET; // SIGNED BIGINT
- SQL_C_UBIGINT = SQL_BIGINT+SQL_UNSIGNED_OFFSET; // UNSIGNED BIGINT
- {$endif}
- SQL_C_TINYINT = SQL_TINYINT;
- SQL_C_SLONG = SQL_C_LONG +SQL_SIGNED_OFFSET; // SIGNED INTEGER
- SQL_C_SSHORT = SQL_C_SHORT+SQL_SIGNED_OFFSET; // SIGNED SMALLINT
- SQL_C_STINYINT = SQL_TINYINT+SQL_SIGNED_OFFSET; // SIGNED TINYINT
- SQL_C_ULONG = SQL_C_LONG +SQL_UNSIGNED_OFFSET; // UNSIGNED INTEGER
- SQL_C_USHORT = SQL_C_SHORT+SQL_UNSIGNED_OFFSET; // UNSIGNED SMALLINT
- SQL_C_UTINYINT = SQL_TINYINT+SQL_UNSIGNED_OFFSET; // UNSIGNED TINYINT
- SQL_C_BOOKMARK = {$if defined(CPU64)}SQL_C_UBIGINT{$else}SQL_C_ULONG{$endif}; // BOOKMARK
- {$ifdef ODBCVER35}
- SQL_C_GUID = SQL_GUID;
- {$endif}
- SQL_TYPE_NULL = 0;
- {$ifdef ODBCVER3}
- SQL_C_VARBOOKMARK = SQL_C_BINARY;
- {$endif}
- SQL_API_SQLDESCRIBEPARAM=58;
- SQL_NO_TOTAL = -4;
- type
- SQL_DATE_STRUCT = packed record
- Year : SQLSMALLINT;
- Month : SQLUSMALLINT;
- Day : SQLUSMALLINT;
- end;
- PSQL_DATE_STRUCT = ^SQL_DATE_STRUCT;
- SQL_TIME_STRUCT = packed record
- Hour : SQLUSMALLINT;
- Minute : SQLUSMALLINT;
- Second : SQLUSMALLINT;
- end;
- PSQL_TIME_STRUCT = ^SQL_TIME_STRUCT;
- SQL_TIMESTAMP_STRUCT = packed record
- Year : SQLUSMALLINT;
- Month : SQLUSMALLINT;
- Day : SQLUSMALLINT;
- Hour : SQLUSMALLINT;
- Minute : SQLUSMALLINT;
- Second : SQLUSMALLINT;
- Fraction : SQLUINTEGER;
- end;
- PSQL_TIMESTAMP_STRUCT = ^SQL_TIMESTAMP_STRUCT;
- SQL_NUMERIC_STRUCT = packed record
- precision: SQLCHAR;
- scale : SQLSCHAR;
- sign : SQLCHAR; // 1 if positive, 0 if negative
- val : array[0..15] of SQLCHAR;
- end;
- const
- SQL_NAME_LEN = 128;
- SQL_OV_ODBC3 = 3;
- SQL_OV_ODBC2 = 2;
- SQL_OV_ODBC3_80 = 380;
- SQL_ATTR_ODBC_VERSION = 200;
- { Options for SQLDriverConnect }
- SQL_DRIVER_NOPROMPT = 0;
- SQL_DRIVER_COMPLETE = 1;
- SQL_DRIVER_PROMPT = 2;
- SQL_DRIVER_COMPLETE_REQUIRED = 3;
- { whether an attribute is a pointer or not }
- SQL_IS_POINTER = (-4);
- SQL_IS_UINTEGER = (-5);
- SQL_IS_INTEGER = (-6);
- SQL_IS_USMALLINT = (-7);
- SQL_IS_SMALLINT = (-8);
- { SQLExtendedFetch "fFetchType" values }
- SQL_FETCH_BOOKMARK = 8;
- SQL_SCROLL_OPTIONS = 44;
- { SQL_USE_BOOKMARKS options }
- SQL_UB_OFF = 0;
- SQL_UB_ON = 1;
- SQL_UB_DEFAULT = SQL_UB_OFF;
- SQL_UB_FIXED = SQL_UB_ON;
- SQL_UB_VARIABLE = 2;
- { SQL_SCROLL_OPTIONS masks }
- SQL_SO_FORWARD_ONLY = $01;
- SQL_SO_KEYSET_DRIVEN = $02;
- SQL_SO_DYNAMIC = $04;
- SQL_SO_MIXED = $08;
- SQL_SO_STATIC = $10;
- SQL_BOOKMARK_PERSISTENCE = 82;
- SQL_STATIC_SENSITIVITY = 83;
- { SQL_BOOKMARK_PERSISTENCE values }
- SQL_BP_CLOSE = $01;
- SQL_BP_DELETE = $02;
- SQL_BP_DROP = $04;
- SQL_BP_TRANSACTION = $08;
- SQL_BP_UPDATE = $10;
- SQL_BP_OTHER_HSTMT = $20;
- SQL_BP_SCROLL = $40;
- SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144;
- SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145;
- SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146;
- SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147;
- SQL_INDEX_KEYWORDS = 148;
- SQL_INFO_SCHEMA_VIEWS = 149;
- SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150;
- SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151;
- SQL_STATIC_CURSOR_ATTRIBUTES1 = 167;
- SQL_STATIC_CURSOR_ATTRIBUTES2 = 168;
- { supported SQLFetchScroll FetchOrientation's }
- SQL_CA1_NEXT = 1;
- SQL_CA1_ABSOLUTE = 2;
- SQL_CA1_RELATIVE = 4;
- SQL_CA1_BOOKMARK = 8;
- { supported SQLSetPos LockType's }
- SQL_CA1_LOCK_NO_CHANGE= $40;
- SQL_CA1_LOCK_EXCLUSIVE= $80;
- SQL_CA1_LOCK_UNLOCK =$100;
- { supported SQLSetPos Operations }
- SQL_CA1_POS_POSITION = $200;
- SQL_CA1_POS_UPDATE = $400;
- SQL_CA1_POS_DELETE = $800;
- SQL_CA1_POS_REFRESH =$1000;
- { positioned updates and deletes }
- SQL_CA1_POSITIONED_UPDATE=$2000;
- SQL_CA1_POSITIONED_DELETE=$4000;
- SQL_CA1_SELECT_FOR_UPDATE=$8000;
- { supported SQLBulkOperations operations }
- SQL_CA1_BULK_ADD =$10000;
- SQL_CA1_BULK_UPDATE_BY_BOOKMARK =$20000;
- SQL_CA1_BULK_DELETE_BY_BOOKMARK =$40000;
- SQL_CA1_BULK_FETCH_BY_BOOKMARK =$80000;
- { supported values for SQL_ATTR_SCROLL_CONCURRENCY }
- SQL_CA2_READ_ONLY_CONCURRENCY = 1;
- SQL_CA2_LOCK_CONCURRENCY = 2;
- SQL_CA2_OPT_ROWVER_CONCURRENCY= 4;
- SQL_CA2_OPT_VALUES_CONCURRENCY= 8;
- { sensitivity of the cursor to its own inserts, deletes, and updates }
- SQL_CA2_SENSITIVITY_ADDITIONS =$10;
- SQL_CA2_SENSITIVITY_DELETIONS =$20;
- SQL_CA2_SENSITIVITY_UPDATES =$40;
- { semantics of SQL_ATTR_MAX_ROWS }
- SQL_CA2_MAX_ROWS_SELECT = $80;
- SQL_CA2_MAX_ROWS_INSERT =$100;
- SQL_CA2_MAX_ROWS_DELETE =$200;
- SQL_CA2_MAX_ROWS_UPDATE =$400;
- SQL_CA2_MAX_ROWS_CATALOG =$800;
- SQL_CA2_MAX_ROWS_AFFECTS_ALL =(SQL_CA2_MAX_ROWS_SELECT or
- SQL_CA2_MAX_ROWS_INSERT or SQL_CA2_MAX_ROWS_DELETE or
- SQL_CA2_MAX_ROWS_UPDATE or SQL_CA2_MAX_ROWS_CATALOG);
- { semantics of SQL_DIAG_CURSOR_ROW_COUNT }
- SQL_CA2_CRC_EXACT = $1000;
- SQL_CA2_CRC_APPROXIMATE = $2000;
- { the kinds of positioned statements that can be simulated }
- SQL_CA2_SIMULATE_NON_UNIQUE = $4000;
- SQL_CA2_SIMULATE_TRY_UNIQUE = $8000;
- SQL_CA2_SIMULATE_UNIQUE =$10000;
- { Operations in SQLBulkOperations }
- SQL_ADD = 4;
- SQL_SETPOS_MAX_OPTION_VALUE = SQL_ADD;
- SQL_UPDATE_BY_BOOKMARK = 5;
- SQL_DELETE_BY_BOOKMARK = 6;
- SQL_FETCH_BY_BOOKMARK = 7;
- { Operations in SQLSetPos }
- SQL_POSITION = 0;
- SQL_REFRESH = 1;
- SQL_UPDATE = 2;
- SQL_DELETE = 3;
- { Lock options in SQLSetPos }
- SQL_LOCK_NO_CHANGE = 0;
- SQL_LOCK_EXCLUSIVE = 1;
- SQL_LOCK_UNLOCK = 2;
- { SQLExtendedFetch "rgfRowStatus" element values }
- SQL_ROW_SUCCESS = 0;
- SQL_ROW_DELETED = 1;
- SQL_ROW_UPDATED = 2;
- SQL_ROW_NOROW = 3;
- SQL_ROW_ADDED = 4;
- SQL_ROW_ERROR = 5;
- SQL_ROW_SUCCESS_WITH_INFO = 6;
- SQL_ROW_PROCEED = 0;
- SQL_ROW_IGNORE = 1;
- SQL_MAX_DSN_LENGTH = 32; { maximum data source name size }
- SQL_MAX_OPTION_STRING_LENGTH = 256;
- { SQL_ODBC_CURSORS options }
- SQL_CUR_USE_IF_NEEDED = 0;
- SQL_CUR_USE_ODBC = 1;
- SQL_CUR_USE_DRIVER = 2;
- SQL_CUR_DEFAULT = SQL_CUR_USE_DRIVER;
- SQL_PARAM_TYPE_UNKNOWN = 0;
- SQL_PARAM_INPUT = 1;
- SQL_PARAM_INPUT_OUTPUT = 2;
- SQL_RESULT_COL = 3;
- SQL_PARAM_OUTPUT = 4;
- SQL_RETURN_VALUE = 5;
- { special length/indicator values }
- SQL_NULL_DATA = (-1);
- SQL_DATA_AT_EXEC = (-2);
- SQL_SUCCESS = 0;
- SQL_SUCCESS_WITH_INFO = 1;
- SQL_NO_DATA = 100;
- SQL_ERROR = (-1);
- SQL_INVALID_HANDLE = (-2);
- SQL_STILL_EXECUTING = 2;
- SQL_NEED_DATA = 99;
- { flags for null-terminated string }
- SQL_NTS = (-3);
- { maximum message length }
- SQL_MAX_MESSAGE_LENGTH = 512;
- { date/time length constants }
- {$ifdef ODBCVER3}
- SQL_DATE_LEN = 10;
- SQL_TIME_LEN = 8; { add P+1 if precision is nonzero }
- SQL_TIMESTAMP_LEN = 19; { add P+1 if precision is nonzero }
- {$endif}
- { handle type identifiers }
- SQL_HANDLE_ENV = 1;
- SQL_HANDLE_DBC = 2;
- SQL_HANDLE_STMT = 3;
- SQL_HANDLE_DESC = 4;
- {$ifdef ODBCVER3}
- { environment attribute }
- SQL_ATTR_OUTPUT_NTS = 10001;
- { connection attributes }
- SQL_ATTR_AUTO_IPD = 10001;
- SQL_ATTR_METADATA_ID = 10014;
- {$endif} { ODBCVER >= 0x0300 }
- { statement attributes }
- SQL_ATTR_APP_ROW_DESC = 10010;
- SQL_ATTR_APP_PARAM_DESC = 10011;
- SQL_ATTR_IMP_ROW_DESC = 10012;
- SQL_ATTR_IMP_PARAM_DESC = 10013;
- SQL_ATTR_CURSOR_SCROLLABLE = (-1);
- SQL_ATTR_CURSOR_SENSITIVITY = (-2);
- SQL_QUERY_TIMEOUT =0;
- SQL_MAX_ROWS =1;
- SQL_NOSCAN =2;
- SQL_MAX_LENGTH =3;
- SQL_ASYNC_ENABLE =4; // same as SQL_ATTR_ASYNC_ENABLE */
- SQL_BIND_TYPE =5;
- SQL_CURSOR_TYPE = 6;
- SQL_CONCURRENCY = 7;
- SQL_KEYSET_SIZE =8;
- SQL_ROWSET_SIZE =9;
- SQL_SIMULATE_CURSOR =10;
- SQL_RETRIEVE_DATA =11;
- SQL_USE_BOOKMARKS =12;
- SQL_GET_BOOKMARK =13; // GetStmtOption Only */
- SQL_ROW_NUMBER =14 ; // GetStmtOption Only */
- { statement attributes for ODBC 3.0 }
- SQL_ATTR_ASYNC_ENABLE = 4;
- SQL_ATTR_CONCURRENCY = SQL_CONCURRENCY;
- SQL_ATTR_CURSOR_TYPE = SQL_CURSOR_TYPE;
- SQL_ATTR_FETCH_BOOKMARK_PTR = 16;
- SQL_ATTR_MAX_ROWS = SQL_MAX_ROWS;
- SQL_ATTR_PARAMSET_SIZE = 22;
- SQL_ATTR_QUERY_TIMEOUT = SQL_QUERY_TIMEOUT;
- SQL_ATTR_ROW_NUMBER = SQL_ROW_NUMBER;
- SQL_ATTR_ROW_STATUS_PTR = 25;
- SQL_ATTR_ROWS_FETCHED_PTR = 26;
- SQL_ATTR_USE_BOOKMARKS = SQL_USE_BOOKMARKS;
- { connection attributes }
- SQL_ACCESS_MODE =101;
- SQL_AUTOCOMMIT =102;
- SQL_LOGIN_TIMEOUT =103;
- SQL_OPT_TRACE =104;
- SQL_OPT_TRACEFILE =105;
- SQL_TRANSLATE_DLL =106;
- SQL_TRANSLATE_OPTION =107;
- SQL_TXN_ISOLATION =108;
- SQL_CURRENT_QUALIFIER =109;
- SQL_ODBC_CURSORS =110;
- SQL_QUIET_MODE =111;
- SQL_PACKET_SIZE =112;
- { connection attributes with new names }
- SQL_ATTR_ACCESS_MODE =SQL_ACCESS_MODE;
- SQL_ATTR_AUTOCOMMIT =SQL_AUTOCOMMIT;
- SQL_ATTR_CONNECTION_DEAD =1209; //* GetConnectAttr only */
- SQL_ATTR_CONNECTION_TIMEOUT =113;
- SQL_ATTR_CURRENT_CATALOG =SQL_CURRENT_QUALIFIER;
- SQL_ATTR_DISCONNECT_BEHAVIOR=114;
- SQL_ATTR_ENLIST_IN_DTC =1207;
- SQL_ATTR_ENLIST_IN_XA =1208;
- SQL_ATTR_LOGIN_TIMEOUT =SQL_LOGIN_TIMEOUT;
- SQL_ATTR_ODBC_CURSORS =SQL_ODBC_CURSORS;
- SQL_ATTR_PACKET_SIZE =SQL_PACKET_SIZE;
- SQL_ATTR_QUIET_MODE =SQL_QUIET_MODE;
- SQL_ATTR_TRACE =SQL_OPT_TRACE;
- SQL_ATTR_TRACEFILE =SQL_OPT_TRACEFILE;
- SQL_ATTR_TRANSLATE_LIB =SQL_TRANSLATE_DLL;
- SQL_ATTR_TRANSLATE_OPTION =SQL_TRANSLATE_OPTION;
- SQL_ATTR_TXN_ISOLATION =SQL_TXN_ISOLATION;
- //* SQL_ACCESS_MODE options */
- SQL_MODE_READ_WRITE =0;
- SQL_MODE_READ_ONLY =1;
- SQL_MODE_DEFAULT =SQL_MODE_READ_WRITE;
- //* SQL_AUTOCOMMIT options */
- SQL_AUTOCOMMIT_OFF = 0;
- SQL_AUTOCOMMIT_ON = 1;
- SQL_AUTOCOMMIT_DEFAULT = SQL_AUTOCOMMIT_ON;
- { SQL_ATTR_CURSOR_SCROLLABLE values }
- SQL_NONSCROLLABLE = 0;
- SQL_SCROLLABLE = 1;
- { SQL_CURSOR_TYPE options }
- SQL_CURSOR_FORWARD_ONLY = 0;
- SQL_CURSOR_KEYSET_DRIVEN = 1;
- SQL_CURSOR_DYNAMIC = 2;
- SQL_CURSOR_STATIC = 3;
- SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY;{ Default value }
- { SQL_CONCURRENCY options }
- SQL_CONCUR_READ_ONLY = 1;
- SQL_CONCUR_LOCK = 2;
- SQL_CONCUR_ROWVER = 3;
- SQL_CONCUR_VALUES = 4;
- SQL_CONCUR_DEFAULT = SQL_CONCUR_READ_ONLY; { Default value }
- { identifiers of fields in the SQL descriptor }
- {$ifdef ODBCVER3}
- SQL_DESC_COUNT = 1001;
- SQL_DESC_TYPE = 1002;
- SQL_DESC_LENGTH = 1003;
- SQL_DESC_OCTET_LENGTH_PTR = 1004;
- SQL_DESC_PRECISION = 1005;
- SQL_DESC_SCALE = 1006;
- SQL_DESC_DATETIME_INTERVAL_CODE = 1007;
- SQL_DESC_NULLABLE = 1008;
- SQL_DESC_INDICATOR_PTR = 1009;
- SQL_DESC_DATA_PTR = 1010;
- SQL_DESC_NAME = 1011;
- SQL_DESC_UNNAMED = 1012;
- SQL_DESC_OCTET_LENGTH = 1013;
- SQL_DESC_ALLOC_TYPE = 1099;
- {$endif}
- { identifiers of fields in the diagnostics area }
- {$ifdef ODBCVER3}
- SQL_DIAG_RETURNCODE = 1;
- SQL_DIAG_NUMBER = 2;
- SQL_DIAG_ROW_COUNT = 3;
- SQL_DIAG_SQLSTATE = 4;
- SQL_DIAG_NATIVE = 5;
- SQL_DIAG_MESSAGE_TEXT = 6;
- SQL_DIAG_DYNAMIC_FUNCTION = 7;
- SQL_DIAG_CLASS_ORIGIN = 8;
- SQL_DIAG_SUBCLASS_ORIGIN = 9;
- SQL_DIAG_CONNECTION_NAME = 10;
- SQL_DIAG_SERVER_NAME = 11;
- SQL_DIAG_DYNAMIC_FUNCTION_CODE = 12;
- {$endif}
- { dynamic function codes }
- {$ifdef ODBCVER3}
- SQL_DIAG_ALTER_TABLE = 4;
- SQL_DIAG_CREATE_INDEX = (-1);
- SQL_DIAG_CREATE_TABLE = 77;
- SQL_DIAG_CREATE_VIEW = 84;
- SQL_DIAG_DELETE_WHERE = 19;
- SQL_DIAG_DROP_INDEX = (-2);
- SQL_DIAG_DROP_TABLE = 32;
- SQL_DIAG_DROP_VIEW = 36;
- SQL_DIAG_DYNAMIC_DELETE_CURSOR = 38;
- SQL_DIAG_DYNAMIC_UPDATE_CURSOR = 81;
- SQL_DIAG_GRANT = 48;
- SQL_DIAG_INSERT = 50;
- SQL_DIAG_REVOKE = 59;
- SQL_DIAG_SELECT_CURSOR = 85;
- SQL_DIAG_UNKNOWN_STATEMENT = 0;
- SQL_DIAG_UPDATE_WHERE = 82;
- {$endif} { ODBCVER >= 0x0300 }
- { Statement attribute values for cursor sensitivity }
- {$ifdef ODBCVER3}
- SQL_UNSPECIFIED = 0;
- SQL_INSENSITIVE = 1;
- SQL_SENSITIVE = 2;
- {$endif}
- { GetTypeInfo() request for all data types }
- SQL_ALL_TYPES = 0;
- { Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() }
- {$ifdef ODBCVER3}
- SQL_DEFAULT = 99;
- {$endif}
- { SQLGetData() code indicating that the application row descriptor
- specifies the data type }
- {$ifdef ODBCVER3}
- SQL_ARD_TYPE = (-99);
- {$endif}
- { SQL date/time type subcodes }
- {$ifdef ODBCVER3}
- SQL_CODE_DATE = 1;
- SQL_CODE_TIME = 2;
- SQL_CODE_TIMESTAMP = 3;
- {$endif}
- { CLI option values }
- {$ifdef ODBCVER3}
- SQL_FALSE = 0;
- SQL_TRUE = 1;
- {$endif}
- { values of NULLABLE field in descriptor }
- SQL_NO_NULLS = 0;
- SQL_NULLABLE = 1;
- { Value returned by SQLGetTypeInfo() to denote that it is
- not known whether or not a data type supports null values. }
- SQL_NULLABLE_UNKNOWN = 2;
- {
- /* Values returned by SQLGetTypeInfo() to show WHERE clause
- * supported
- #if (ODBCVER >= 0x0300)
- #define SQL_PRED_NONE 0
- #define SQL_PRED_CHAR 1
- #define SQL_PRED_BASIC 2
- #endif
- }
- { values of UNNAMED field in descriptor }
- {$ifdef ODBCVER3}
- SQL_NAMED = 0;
- SQL_UNNAMED = 1;
- {$endif}
- {
- /* values of ALLOC_TYPE field in descriptor */
- #if (ODBCVER >= 0x0300)
- #define SQL_DESC_ALLOC_AUTO 1
- #define SQL_DESC_ALLOC_USER 2
- #endif
- }
- { FreeStmt() options }
- SQL_CLOSE = 0;
- SQL_DROP = 1;
- SQL_UNBIND = 2;
- SQL_RESET_PARAMS = 3;
- { Codes used for FetchOrientation in SQLFetchScroll(),
- and in SQLDataSources() }
- SQL_FETCH_NEXT = 1;
- SQL_FETCH_FIRST = 2;
- {$ifdef ODBCVER3}
- SQL_FETCH_FIRST_USER = 31;
- SQL_FETCH_FIRST_SYSTEM = 32;
- {$endif}
- { Other codes used for FetchOrientation in SQLFetchScroll() }
- SQL_FETCH_LAST = 3;
- SQL_FETCH_PRIOR = 4;
- SQL_FETCH_ABSOLUTE = 5;
- SQL_FETCH_RELATIVE = 6;
- {
- /* SQLEndTran() options */
- #define SQL_COMMIT 0
- #define SQL_ROLLBACK 1}
- //* null handles returned by SQLAllocHandle() */
- SQL_NULL_HENV = SQLHENV(0);
- SQL_NULL_HDBC = SQLHDBC(0);
- SQL_NULL_HSTMT = SQLHSTMT(0);
- {$ifdef ODBCVER3}
- SQL_NULL_HDESC = SQLHDESC(0);
- {$endif}
- //* null handle used in place of parent handle when allocating HENV */
- SQL_NULL_HANDLE = SQLHANDLE(0);
- //* Values that may appear in the result set of SQLSpecialColumns() */
- SQL_SCOPE_CURROW = 0;
- SQL_SCOPE_TRANSACTION = 1;
- SQL_SCOPE_SESSION = 2;
- //* Column types and scopes in SQLSpecialColumns. */
- SQL_BEST_ROWID = 1;
- SQL_ROWVER = 2;
- SQL_PC_UNKNOWN = 0;
- {$ifdef ODBCVER3}
- SQL_PC_NON_PSEUDO = 1;
- {$endif}
- SQL_PC_PSEUDO = 2;
- //* Reserved value for the IdentifierType argument of SQLSpecialColumns() */
- {$ifdef ODBCVER3}
- SQL_ROW_IDENTIFIER = 1;
- {$endif}
- //* Reserved values for UNIQUE argument of SQLStatistics() */
- SQL_INDEX_UNIQUE = 0;
- SQL_INDEX_ALL = 1;
- //* Reserved values for RESERVED argument of SQLStatistics() */
- SQL_QUICK = 0;
- SQL_ENSURE = 1;
- //* Values that may appear in the result set of SQLStatistics() */
- SQL_TABLE_STAT = 0;
- SQL_INDEX_CLUSTERED = 1;
- SQL_INDEX_HASHED = 2;
- SQL_INDEX_OTHER = 3;
- // SQL_INDEX_BTREE = ???;
- // SQL_INDEX_CONTENT = ???;
- (* SQLGetFunctions() values to identify ODBC APIs *)
- SQL_API_SQLALLOCCONNECT = 1;
- SQL_API_SQLALLOCENV = 2;
- SQL_API_SQLALLOCHANDLE = 1001;
- SQL_API_SQLALLOCSTMT = 3;
- SQL_API_SQLBINDCOL = 4;
- SQL_API_SQLBINDPARAM = 1002;
- SQL_API_SQLCANCEL = 5;
- SQL_API_SQLCLOSECURSOR = 1003;
- SQL_API_SQLCOLATTRIBUTE = 6;
- SQL_API_SQLCOLUMNS = 40;
- SQL_API_SQLCONNECT = 7;
- SQL_API_SQLCOPYDESC = 1004;
- SQL_API_SQLDATASOURCES = 57;
- SQL_API_SQLDESCRIBECOL = 8;
- SQL_API_SQLDISCONNECT = 9;
- SQL_API_SQLENDTRAN = 1005;
- SQL_API_SQLERROR = 10;
- SQL_API_SQLEXECDIRECT = 11;
- SQL_API_SQLEXECUTE = 12;
- SQL_API_SQLFETCH = 13;
- SQL_API_SQLFETCHSCROLL = 1021;
- SQL_API_SQLFREECONNECT = 14;
- SQL_API_SQLFREEENV = 15;
- SQL_API_SQLFREEHANDLE = 1006;
- SQL_API_SQLFREESTMT = 16;
- SQL_API_SQLGETCONNECTATTR = 1007;
- SQL_API_SQLGETCONNECTOPTION = 42;
- SQL_API_SQLGETCURSORNAME = 17;
- SQL_API_SQLGETDATA = 43;
- SQL_API_SQLGETDESCFIELD = 1008;
- SQL_API_SQLGETDESCREC = 1009;
- SQL_API_SQLGETDIAGFIELD = 1010;
- SQL_API_SQLGETDIAGREC = 1011;
- SQL_API_SQLGETENVATTR = 1012;
- SQL_API_SQLGETFUNCTIONS = 44;
- SQL_API_SQLGETINFO = 45;
- SQL_API_SQLGETSTMTATTR = 1014;
- SQL_API_SQLGETSTMTOPTION = 46;
- SQL_API_SQLGETTYPEINFO = 47;
- SQL_API_SQLNUMRESULTCOLS = 18;
- SQL_API_SQLPARAMDATA = 48;
- SQL_API_SQLPREPARE = 19;
- SQL_API_SQLPUTDATA = 49;
- SQL_API_SQLROWCOUNT = 20;
- SQL_API_SQLSETCONNECTATTR = 1016;
- SQL_API_SQLSETCONNECTOPTION = 50;
- SQL_API_SQLSETCURSORNAME = 21;
- SQL_API_SQLSETDESCFIELD = 1017;
- SQL_API_SQLSETDESCREC = 1018;
- SQL_API_SQLSETENVATTR = 1019;
- SQL_API_SQLSETPARAM = 22;
- SQL_API_SQLSETSTMTATTR = 1020;
- SQL_API_SQLSETSTMTOPTION = 51;
- SQL_API_SQLSPECIALCOLUMNS = 52;
- SQL_API_SQLSTATISTICS = 53;
- SQL_API_SQLTABLES = 54;
- SQL_API_SQLTRANSACT = 23;
- SQL_API_SQLCANCELHANDLE = 1022;
- {
- /* Information requested by SQLGetInfo() */
- #if (ODBCVER >= 0x0300)
- #define SQL_MAX_DRIVER_CONNECTIONS 0
- #define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
- #define SQL_MAX_CONCURRENT_ACTIVITIES 1
- #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
- #endif
- #define SQL_FETCH_DIRECTION 8
- #define SQL_SEARCH_PATTERN_ESCAPE 14
- #define SQL_ACCESSIBLE_TABLES 19
- #define SQL_ACCESSIBLE_PROCEDURES 20
- #define SQL_CURSOR_COMMIT_BEHAVIOR 23
- #define SQL_DATA_SOURCE_READ_ONLY 25
- #define SQL_DEFAULT_TXN_ISOLATION 26
- #define SQL_MAX_COLUMN_NAME_LEN 30
- #define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
- #define SQL_MAX_CURSOR_NAME_LEN 31
- #define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
- #define SQL_MAX_SCHEMA_NAME_LEN 32
- #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
- #define SQL_MAX_CATALOG_NAME_LEN 34
- #define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
- #define SQL_MAX_TABLE_NAME_LEN 35
- }
- SQL_DATA_SOURCE_NAME = 2;
- SQL_DRIVER_NAME = 6;
- SQL_DRIVER_VER = 7;
- SQL_SERVER_NAME = 13;
- SQL_DBMS_NAME = 17;
- SQL_DBMS_VER = 18;
- SQL_IDENTIFIER_CASE = 28;
- SQL_IDENTIFIER_QUOTE_CHAR = 29;
- SQL_SCROLL_CONCURRENCY = 43;
- SQL_TXN_CAPABLE = 46;
- SQL_TRANSACTION_CAPABLE = SQL_TXN_CAPABLE;
- SQL_USER_NAME = 47;
- SQL_TXN_ISOLATION_OPTION = 72;
- SQL_TRANSACTION_ISOLATION_OPTION = SQL_TXN_ISOLATION_OPTION;
- {
- #define SQL_INTEGRITY 73
- #define SQL_GETDATA_EXTENSIONS 81
- #define SQL_NULL_COLLATION 85
- #define SQL_ALTER_TABLE 86
- #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
- #define SQL_SPECIAL_CHARACTERS 94
- #define SQL_MAX_COLUMNS_IN_GROUP_BY 97
- #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
- #define SQL_MAX_COLUMNS_IN_INDEX 98
- #define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
- #define SQL_MAX_COLUMNS_IN_ORDER_BY 99
- #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
- #define SQL_MAX_COLUMNS_IN_SELECT 100
- #define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
- #define SQL_MAX_COLUMNS_IN_TABLE 101
- #define SQL_MAX_INDEX_SIZE 102
- #define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
- #define SQL_MAX_ROW_SIZE 104
- #define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
- #define SQL_MAX_STATEMENT_LEN 105
- #define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
- #define SQL_MAX_TABLES_IN_SELECT 106
- #define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
- #define SQL_MAX_USER_NAME_LEN 107
- #define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN}
- {$ifdef ODBCVER3}
- SQL_OJ_CAPABILITIES = 115;
- SQL_OUTER_JOIN_CAPABILITIES = SQL_OJ_CAPABILITIES;
- {$endif} { ODBCVER >= 0x0300 }
- {$ifdef ODBCVER3}
- SQL_XOPEN_CLI_YEAR = 10000;
- SQL_CURSOR_SENSITIVITY = 10001;
- SQL_DESCRIBE_PARAMETER = 10002;
- SQL_CATALOG_NAME = 10003;
- SQL_COLLATION_SEQ = 10004;
- SQL_MAX_IDENTIFIER_LEN = 10005;
- SQL_MAXIMUM_IDENTIFIER_LENGTH = SQL_MAX_IDENTIFIER_LEN;
- {$endif} { ODBCVER >= 0x0300 }
- { Extended definitions for SQLGetInfo }
- SQL_NEED_LONG_DATA_LEN = 111;
- {/* SQL_ALTER_TABLE bitmasks */
- #if (ODBCVER >= 0x0200)
- #define SQL_AT_ADD_COLUMN 0x00000001L
- #define SQL_AT_DROP_COLUMN 0x00000002L
- #endif /* ODBCVER >= 0x0200 */
- #if (ODBCVER >= 0x0300)
- #define SQL_AT_ADD_CONSTRAINT 0x00000008L
- /* The following bitmasks are ODBC extensions and defined in sqlext.h
- *#define SQL_AT_COLUMN_SINGLE 0x00000020L
- *#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
- *#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
- *#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
- *#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
- *#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
- *#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
- *#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
- *#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
- *#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
- *#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
- *#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
- *#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
- *#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
- *#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
- #endif /* ODBCVER >= 0x0300 */
- }
- SQL_API_ALL_FUNCTIONS = 0;
- SQL_API_ODBC3_ALL_FUNCTIONS = 999;
- {
- /* SQL_ASYNC_MODE values */
- #if (ODBCVER >= 0x0300)
- #define SQL_AM_NONE 0
- #define SQL_AM_CONNECTION 1
- #define SQL_AM_STATEMENT 2
- #endif
- /* SQL_CURSOR_COMMIT_BEHAVIOR values */
- #define SQL_CB_DELETE 0
- #define SQL_CB_CLOSE 1
- #define SQL_CB_PRESERVE 2
- /* SQL_FETCH_DIRECTION bitmasks */
- #define SQL_FD_FETCH_NEXT 0x00000001L
- #define SQL_FD_FETCH_FIRST 0x00000002L
- #define SQL_FD_FETCH_LAST 0x00000004L
- #define SQL_FD_FETCH_PRIOR 0x00000008L
- #define SQL_FD_FETCH_ABSOLUTE 0x00000010L
- #define SQL_FD_FETCH_RELATIVE 0x00000020L
- /* SQL_GETDATA_EXTENSIONS bitmasks */
- #define SQL_GD_ANY_COLUMN 0x00000001L
- #define SQL_GD_ANY_ORDER 0x00000002L
- }
- { SQL_IDENTIFIER_CASE values }
- SQL_IC_UPPER = 1;
- SQL_IC_LOWER = 2;
- SQL_IC_SENSITIVE = 3;
- SQL_IC_MIXED = 4;
- {
- /* SQL_OJ_CAPABILITIES bitmasks */
- /* NB: this means 'outer join', not what you may be thinking */
- #if (ODBCVER >= 0x0201)
- #define SQL_OJ_LEFT 0x00000001L
- #define SQL_OJ_RIGHT 0x00000002L
- #define SQL_OJ_FULL 0x00000004L
- #define SQL_OJ_NESTED 0x00000008L
- #define SQL_OJ_NOT_ORDERED 0x00000010L
- #define SQL_OJ_INNER 0x00000020L
- #define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
- #endif
- }
- { SQL_SCROLL_CONCURRENCY bitmasks }
- SQL_SCCO_READ_ONLY = 1;
- SQL_SCCO_LOCK = 2;
- SQL_SCCO_OPT_ROWVER = 4;
- SQL_SCCO_OPT_VALUES = 8;
- //* SQL_TXN_CAPABLE values */
- SQL_TC_NONE = 0;
- SQL_TC_DML = 1;
- SQL_TC_ALL = 2;
- SQL_TC_DDL_COMMIT = 3;
- SQL_TC_DDL_IGNORE = 4;
- //* SQL_TXN_ISOLATION_OPTION bitmasks */
- SQL_TXN_READ_UNCOMMITTED = 1;
- SQL_TRANSACTION_READ_UNCOMMITTED = SQL_TXN_READ_UNCOMMITTED;
- SQL_TXN_READ_COMMITTED = 2;
- SQL_TRANSACTION_READ_COMMITTED = SQL_TXN_READ_COMMITTED;
- SQL_TXN_REPEATABLE_READ = 4;
- SQL_TRANSACTION_REPEATABLE_READ = SQL_TXN_REPEATABLE_READ;
- SQL_TXN_SERIALIZABLE = 8;
- SQL_TRANSACTION_SERIALIZABLE = SQL_TXN_SERIALIZABLE;
- {
- /* SQL_NULL_COLLATION values */
- #define SQL_NC_HIGH 0
- #define SQL_NC_LOW 1
- }
- { SQL_STATIC_SENSITIVITY values }
- SQL_SS_ADDITIONS = 1;
- SQL_SS_DELETIONS = 2;
- SQL_SS_UPDATES = 4;
- { SQLBindParameter extensions }
- SQL_DEFAULT_PARAM = -5;
- SQL_IGNORE = -6;
- { SQLColAttributes defines }
- SQL_COLUMN_COUNT = 0;
- SQL_COLUMN_NAME = 1;
- SQL_COLUMN_TYPE = 2;
- SQL_COLUMN_LENGTH = 3;
- SQL_COLUMN_PRECISION = 4;
- SQL_COLUMN_SCALE = 5;
- SQL_COLUMN_DISPLAY_SIZE = 6;
- SQL_COLUMN_NULLABLE = 7;
- SQL_COLUMN_UNSIGNED = 8;
- SQL_COLUMN_MONEY = 9;
- SQL_COLUMN_UPDATABLE = 10;
- SQL_COLUMN_AUTO_INCREMENT = 11;
- SQL_COLUMN_CASE_SENSITIVE = 12;
- SQL_COLUMN_SEARCHABLE = 13;
- SQL_COLUMN_TYPE_NAME = 14;
- SQL_COLUMN_TABLE_NAME = 15;
- SQL_COLUMN_OWNER_NAME = 16;
- SQL_COLUMN_QUALIFIER_NAME = 17;
- SQL_COLUMN_LABEL = 18;
- SQL_COLATT_OPT_MAX = SQL_COLUMN_LABEL;
- {$ifdef ODBCVER3}
- SQL_COLUMN_DRIVER_START = 1000;
- {$endif} { ODBCVER >= 0x0300 }
- { SQLColAttribute defines }
- {$ifdef ODBCVER3}
- SQL_DESC_ARRAY_SIZE = 20;
- SQL_DESC_ARRAY_STATUS_PTR = 21;
- SQL_DESC_AUTO_UNIQUE_VALUE = SQL_COLUMN_AUTO_INCREMENT;
- SQL_DESC_BASE_COLUMN_NAME = 22;
- SQL_DESC_BASE_TABLE_NAME = 23;
- SQL_DESC_BIND_OFFSET_PTR = 24;
- SQL_DESC_BIND_TYPE = 25;
- SQL_DESC_CASE_SENSITIVE = SQL_COLUMN_CASE_SENSITIVE;
- SQL_DESC_CATALOG_NAME = SQL_COLUMN_QUALIFIER_NAME;
- SQL_DESC_CONCISE_TYPE = SQL_COLUMN_TYPE;
- SQL_DESC_DATETIME_INTERVAL_PRECISION = 26;
- SQL_DESC_DISPLAY_SIZE = SQL_COLUMN_DISPLAY_SIZE;
- SQL_DESC_FIXED_PREC_SCALE = SQL_COLUMN_MONEY;
- SQL_DESC_LABEL = SQL_COLUMN_LABEL;
- SQL_DESC_LITERAL_PREFIX = 27;
- SQL_DESC_LITERAL_SUFFIX = 28;
- SQL_DESC_LOCAL_TYPE_NAME = 29;
- SQL_DESC_MAXIMUM_SCALE = 30;
- SQL_DESC_MINIMUM_SCALE = 31;
- SQL_DESC_NUM_PREC_RADIX = 32;
- SQL_DESC_PARAMETER_TYPE = 33;
- SQL_DESC_ROWS_PROCESSED_PTR = 34;
- {$ifdef ODBCVER35}
- SQL_DESC_ROWVER = 35;
- {$endif}
- SQL_DESC_SCHEMA_NAME = SQL_COLUMN_OWNER_NAME;
- SQL_DESC_SEARCHABLE = SQL_COLUMN_SEARCHABLE;
- SQL_DESC_TYPE_NAME = SQL_COLUMN_TYPE_NAME;
- SQL_DESC_TABLE_NAME = SQL_COLUMN_TABLE_NAME;
- SQL_DESC_UNSIGNED = SQL_COLUMN_UNSIGNED;
- SQL_DESC_UPDATABLE = SQL_COLUMN_UPDATABLE;
- {$endif}
- { defines for diagnostics fields }
- SQL_DIAG_CURSOR_ROW_COUNT = -1249;
- SQL_DIAG_ROW_NUMBER = -1248;
- SQL_DIAG_COLUMN_NUMBER = -1247;
- { SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE }
- SQL_ATTR_READONLY = 0;
- SQL_ATTR_WRITE = 1;
- SQL_ATTR_READWRITE_UNKNOWN = 2;
- //* SQLEndTran() options */
- SQL_COMMIT = 0;
- SQL_ROLLBACK = 1;
- SQL_ATTR_ROW_ARRAY_SIZE = 27;
- //* SQLConfigDataSource() options */
- ODBC_ADD_DSN = 1;
- ODBC_CONFIG_DSN = 2;
- ODBC_REMOVE_DSN = 3;
- ODBC_ADD_SYS_DSN = 4;
- ODBC_CONFIG_SYS_DSN = 5;
- ODBC_REMOVE_SYS_DSN = 6;
- { Defines for SQLTables }
- {$ifdef ODBCVER3}
- SQL_ALL_CATALOGS = '%';
- SQL_ALL_SCHEMAS = '%';
- SQL_ALL_TABLE_TYPES = '%';
- {$endif}
- {$ifdef DYNLOADINGODBC}
- type TSQLAllocHandle =function(HandleType: SQLSMALLINT;
- InputHandle:SQLHANDLE;Var OutputHandlePtr: SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSetEnvAttr=function (EnvironmentHandle:SQLHENV;
- Attribute:SQLINTEGER;Value:SQLPOINTER;
- StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLFreeHandle=function (HandleType:SQLSMALLINT;
- Handle:SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetDiagRec=function (HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;RecNumber:SQLSMALLINT;
- SqlState:PSQLCHAR;var NativeError:SQLINTEGER;
- MessageText:PSQLCHAR;BufferLength:SQLSMALLINT;
- var TextLength:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLGetDiagRecW=function (HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;RecNumber:SQLSMALLINT;
- SqlState:PSQLWCHAR;var NativeError:SQLINTEGER;
- MessageText:PSQLWCHAR;BufferLength:SQLSMALLINT;
- var TextLength:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetDiagField=function (HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;RecNumber:SQLSMALLINT;
- DiagIdentifier:SQLSMALLINT;DiagInfoPtr:SQLPOINTER;
- BufferLength:SQLSMALLINT;var StringLengthPtr:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLConnect=function (ConnectionHandle:SQLHDBC;
- ServerName:PSQLCHAR;NameLength1:SQLSMALLINT;
- UserName:PSQLCHAR;NameLength2:SQLSMALLINT;
- Authentication:PSQLCHAR;NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLConnectW=function (ConnectionHandle:SQLHDBC;
- ServerName:PSQLWCHAR;NameLength1:SQLSMALLINT;
- UserName:PSQLWCHAR;NameLength2:SQLSMALLINT;
- Authentication:PSQLWCHAR;NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDisconnect=function(ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDriverConnect=function (ConnectionHandle: SQLHDBC;
- WindowHandle: SQLHWND; InConnectionString: PSQLCHAR;
- StringLength1: SQLSMALLINT; OutConnectionString: PSQLCHAR;
- BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT;
- DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLDriverConnectW=function (ConnectionHandle: SQLHDBC;
- WindowHandle: SQLHWND; InConnectionString: PSQLWCHAR;
- StringLength1: SQLSMALLINT; OutConnectionString: PSQLWCHAR;
- BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT;
- DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLExecDirect=function (StatementHandle:SQLHSTMT;
- StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLExecDirectW=function (StatementHandle:SQLHSTMT;
- StatementText:PSQLWCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLParamData=function(StatementHandle:SQLHSTMT; ValuePtrPtr: PSQLPOINTER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLPrepare=function (StatementHandle:SQLHSTMT;
- StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLPrepareW=function (StatementHandle:SQLHSTMT;
- StatementText:PSQLWCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLCloseCursor=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLExecute=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLFetch=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLNumResultCols=function (StatementHandle:SQLHSTMT;
- var ColumnCount:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDescribeCol=function (StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;ColumnName:PSQLCHAR;
- BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT;
- var DataType:SQLSMALLINT;var ColumnSize:SQLULEN;
- var DecimalDigits:SQLSMALLINT;var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLDescribeColW=function (StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;ColumnName:PSQLWCHAR;
- BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT;
- var DataType:SQLSMALLINT;var ColumnSize:SQLULEN;
- var DecimalDigits:SQLSMALLINT;var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLFetchScroll=function (StatementHandle:SQLHSTMT;
- FetchOrientation:SQLSMALLINT;FetchOffset:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLExtendedFetch=function (hstmt:SQLHSTMT;
- fFetchType:SQLUSMALLINT;irow:SQLLEN;
- pcrow:PSQLULEN;rgfRowStatus:PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetData=function (StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
- TargetValue:SQLPOINTER;BufferLength:SQLLEN;
- StrLen_or_Ind:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSetStmtAttr=function (StatementHandle:SQLHSTMT;
- Attribute:SQLINTEGER;Value:SQLPOINTER;
- StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetStmtAttr=function (StatementHandle:SQLHSTMT;
- Attribute:SQLINTEGER;Value:SQLPOINTER;
- BufferLength:SQLINTEGER;StringLength:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSetDescField=function (DescriptorHandle:SQLHDESC;
- RecNumber:SQLSMALLINT; FieldIdentifier:SQLSMALLINT;
- ValuePtr:SQLPOINTER; BufferLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSetDescRec=function (DescriptorHandle:SQLHDESC;
- RecNumber:SQLSMALLINT; DescType, SubType:SQLSMALLINT;
- Length:SQLLEN; Precision, Scale: SQLSMALLINT;
- DataPtr:SQLPOINTER; StringLengthPtr,IndicatorPtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetFunctions=function(ConnectionHandle: SQLHDBC;
- FunctionId: SQLUSMALLINT;
- Supported: PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetInfo=function (ConnectionHandle:SQLHDBC;
- InfoType:SQLUSMALLINT;InfoValue:SQLPOINTER;
- BufferLength:SQLSMALLINT;StringLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLBulkOperations=function (StatementHandle: SQLHSTMT;
- Operation:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLPutData=function (StatementHandle:SQLHSTMT;
- Data:SQLPOINTER;StrLen_or_Ind:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLBindCol=function (StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
- TargetValue:SQLPOINTER;BufferLength:SQLLEN;
- StrLen_or_Ind:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSetPos=function (StatementHandle:SQLHSTMT;
- RowNumber:SQLSETPOSIROW; Operation:SQLUSMALLINT;
- LockType:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDataSources=function (EnvironmentHandle:SQLHENV;
- Direction:SQLUSMALLINT;ServerName:PSQLCHAR;
- BufferLength1:SQLSMALLINT;NameLength1:PSQLSMALLINT;
- Description:PSQLCHAR;BufferLength2:SQLSMALLINT;
- NameLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDrivers=function (EnvironmentHandle:SQLHENV;
- Direction:SQLUSMALLINT;DriverDescription:PSQLCHAR;
- BufferLength1:SQLSMALLINT;DescriptionLength1:PSQLSMALLINT;
- DriverAttributes:PSQLCHAR;BufferLength2:SQLSMALLINT;
- AttributesLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetConnectAttr=function (ConnectionHandle:SQLHDBC;
- Attribute: SQLINTEGER; Value: SQLPOINTER;
- BufferLength: SQLINTEGER; StringLengthPtr: PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLSetConnectAttr=function (ConnectionHandle:SQLHDBC;
- Attribute:SQLINTEGER; Value:SQLPOINTER;
- StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLGetCursorName=function (StatementHandle:SQLHSTMT;
- CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
- NameLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLSetCursorName=function (StatementHandle:SQLHSTMT;
- CursorName:PSQLCHAR; NameLength:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLRowCount=function (StatementHandle:SQLHSTMT;
- var RowCount:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLBindParameter=function (hstmt:SQLHSTMT;
- ipar:SQLUSMALLINT;fParamType:SQLSMALLINT;
- fCType:SQLSMALLINT;fSqlType:SQLSMALLINT;
- cbColDef:SQLULEN;ibScale:SQLSMALLINT;
- rgbValue:SQLPOINTER;cbValueMax:SQLLEN;
- pcbValue:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLDescribeParam=function (StatementHandle: SQLHSTMT;
- ParameterNumber: SQLUSMALLINT;
- DataTypePtr: PSQLSMALLINT;
- ParameterSizePtr: PSQLULEN;
- DecimalDigitsPtr: PSQLSMALLINT;
- NullablePtr: PSQLSMALLINT): SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLFreeStmt=function (StatementHandle:SQLHSTMT;
- Option:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLColAttribute=function (StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;FieldIdentifier:SQLUSMALLINT;
- CharacterAttributePtr:SQLPOINTER;BufferLength:SQLSMALLINT;
- StringLengthPtr:PSQLSMALLINT;NumericAttributePtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLEndTran=function (HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;CompletionType:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLTables=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;cbTableName : SQLSMALLINT;
- szTableType : PSQLCHAR;cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLTablesW=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT;
- szTableType : PSQLWCHAR;cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLColumns=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;cbTableName : SQLSMALLINT;
- szColumnName : PSQLCHAR;cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLColumnsW=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT;
- szColumnName : PSQLWCHAR;cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLSpecialColumns=function (StatementHandle:SQLHSTMT;
- IdentifierType:SQLUSMALLINT;CatalogName:PSQLCHAR;
- NameLength1:SQLSMALLINT;SchemaName:PSQLCHAR;
- NameLength2:SQLSMALLINT;TableName:PSQLCHAR;
- NameLength3:SQLSMALLINT;Scope:SQLUSMALLINT;
- Nullable:SQLUSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLForeignKeysA=function(StatementHandle: SQLHSTMT;
- PKCatalogName: PSQLCHAR; NameLength1: SQLSMALLINT;
- PKSchemaName: PSQLCHAR; NameLength2: SQLSMALLINT;
- PKTableName: PSQLCHAR; NameLength3: SQLSMALLINT;
- FKCatalogName: PSQLCHAR; NameLength4: SQLSMALLINT;
- FKSchemaName: PSQLCHAR; NameLength5: SQLSMALLINT;
- FKTableName: PSQLCHAR; NameLength6: SQLSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLForeignKeysW=function(StatementHandle: SQLHSTMT;
- PKCatalogName: PSQLWCHAR; NameLength1: SQLSMALLINT;
- PKSchemaName: PSQLWCHAR; NameLength2: SQLSMALLINT;
- PKTableName: PSQLWCHAR; NameLength3: SQLSMALLINT;
- FKCatalogName: PSQLWCHAR; NameLength4: SQLSMALLINT;
- FKSchemaName: PSQLWCHAR; NameLength5: SQLSMALLINT;
- FKTableName: PSQLWCHAR; NameLength6: SQLSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLProcedures=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLProceduresW=function ( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLProcedureColumns = function(hstmt: SQLHSTMT;
- CatalogName: PSQLCHAR; NameLength1: SQLSMALLINT;
- SchemaName: PSQLCHAR; NameLength2: SQLSMALLINT;
- ProcName: PSQLCHAR; NameLength3: SQLSMALLINT;
- ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLProcedureColumnsW = function(hstmt: SQLHSTMT;
- CatalogName: PSQLWCHAR; NameLength1: SQLSMALLINT;
- SchemaName: PSQLWCHAR; NameLength2: SQLSMALLINT;
- ProcName: PSQLWCHAR; NameLength3: SQLSMALLINT;
- ColumnName: PSQLWCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLPrimaryKeys=function (hstmt : SQLHSTMT;
- CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT;
- SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT;
- TableName:PSQLCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLPrimaryKeysW=function (hstmt : SQLHSTMT;
- CatalogName:PSQLWCHAR;NameLength1:SQLSMALLINT;
- SchemaName:PSQLWCHAR;NameLength2:SQLSMALLINT;
- TableName:PSQLWCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
- type TSQLStatistics = function (hstmt: SQLHSTMT;
- CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLCHAR; NameLength3:SQLSMALLINT;
- Unique:SQLUSMALLINT;
- Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- TSQLStatisticsW = function (hstmt: SQLHSTMT;
- CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLWCHAR; NameLength3:SQLSMALLINT;
- Unique:SQLUSMALLINT;
- Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
- var SQLAllocHandle:tSQLAllocHandle;
- var SQLSetEnvAttr:tSQLSetEnvAttr;
- var SQLFreeHandle:tSQLFreeHandle;
- var SQLGetFunctions:TSQLGetFunctions;
- var SQLGetInfo:tSQLGetInfo;
- var SQLGetDiagRecA:TSQLGetDiagRec;
- SQLGetDiagRecW:TSQLGetDiagRecW;
- var SQLGetDiagField:TSQLGetDiagField;
- var SQLConnectA:TSQLConnect;
- SQLConnectW:TSQLConnectW;
- var SQLDisconnect:TSQLDisconnect;
- var SQLDriverConnectA:TSQLDriverConnect;
- SQLDriverConnectW:TSQLDriverConnectW;
- var SQLExecDirectA:TSQLExecDirect;
- SQLExecDirectW:TSQLExecDirectW;
- var SQLParamData:TSQLParamData;
- var SQLPrepareA:TSQLPrepare;
- SQLPrepareW:TSQLPrepareW;
- var SQLCloseCursor:TSQLCloseCursor;
- var SQLExecute:TSQLExecute;
- var SQLFetch:TSQLFetch;
- var SQLNumResultCols:TSQLNumResultCols;
- var SQLDescribeColA:TSQLDescribeCol;
- SQLDescribeColW:TSQLDescribeColW;
- var SQLFetchScroll:TSQLFetchScroll;
- var SQLExtendedFetch:TSQLExtendedFetch;
- var SQLGetData:TSQLGetData;
- var SQLSetStmtAttr:TSQLSetStmtAttr;
- var SQLGetStmtAttr:TSQLGetStmtAttr;
- var SQLSetDescField:TSQLSetDescField;
- var SQLSetDescRec:TSQLSetDescRec;
- var SQLBulkOperations:TSQLBulkOperations;
- var SQLPutData:TSQLPutData;
- var SQLBindCol:TSQLBindCol;
- var SQLSetPos:TSQLSetPos;
- var SQLDataSources:TSQLDataSources;
- var SQLDrivers:TSQLDrivers;
- var SQLGetConnectAttr:TSQLGetConnectAttr;
- var SQLSetConnectAttr:TSQLSetConnectAttr;
- var SQLGetCursorName:TSQLGetCursorName;
- var SQLSetCursorName:TSQLSetCursorName;
- var SQLRowCount:TSQLRowCount;
- var SQLBindParameter:TSQLBindParameter;
- var SQLDescribeParam:TSQLDescribeParam;
- var SQLFreeStmt:TSQLFreeStmt;
- var SQLColAttribute:TSQLColAttribute;
- var SQLEndTran:TSQLEndTran;
- var SQLTablesA:TSQLTables;
- SQLTablesW:TSQLTablesW;
- var SQLColumnsA:TSQLColumns;
- SQLColumnsW:TSQLColumnsW;
- var SQLSpecialColumns:TSQLSpecialColumns;
- var SQLForeignKeysA:TSQLForeignKeysA;
- SQLForeignKeysW:TSQLForeignKeysW;
- var SQLPrimaryKeysA:TSQLPrimaryKeys;
- SQLPrimaryKeysW:TSQLPrimaryKeysW;
- var SQLProceduresA:TSQLProcedures;
- SQLProceduresW:TSQLProceduresW;
- var SQLProcedureColumnsA: TSQLProcedureColumns;
- SQLProcedureColumnsW: TSQLProcedureColumnsW;
- var SQLStatisticsA: TSQLStatistics;
- SQLStatisticsW: TSQLStatisticsW;
- var odbcversion:word;
- var
- SQLConnect: TSQLConnect;
- SQLDriverConnect: TSQLDriverConnect;
- SQLExecDirect: TSQLExecDirect;
- SQLGetDiagRec: TSQLGetDiagRec;
- SQLPrepare: TSQLPrepare;
- SQLDescribeCol: TSQLDescribeCol;
- SQLTables: TSQLTables;
- SQLColumns: TSQLColumns;
- SQLPrimaryKeys: TSQLPrimaryKeys;
- SQLProcedures: TSQLProcedures;
- SQLProcedureColumns: TSQLProcedureColumns;
- SQLStatistics: TSQLStatistics;
- {$else}
- function SQLAllocHandle(
- HandleType: SQLSMALLINT;
- InputHandle:SQLHANDLE;
- Var OutputHandlePtr: SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetEnvAttr(
- EnvironmentHandle:SQLHENV;
- Attribute: SQLINTEGER;
- Value: SQLPOINTER;
- StringLength: SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetEnvAttr(
- EnvironmentHandle:SQLHENV;
- Attribute:SQLINTEGER;
- Value:SQLPOINTER;
- BufferLength:SQLINTEGER;
- StringLength:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLFreeHandle(
- HandleType: SQLSMALLINT;
- Handle: SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetDiagRec(
- HandleType: SQLSMALLINT;
- Handle: SQLHANDLE;
- RecNumber: SQLSMALLINT;
- SqlState: PSQLCHAR;
- var NativeError: SQLINTEGER;
- MessageText: PSQLCHAR;
- BufferLength: SQLSMALLINT;
- var TextLength: SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetDiagRecW(
- HandleType: SQLSMALLINT;
- Handle: SQLHANDLE;
- RecNumber: SQLSMALLINT;
- SqlState: PSQLWCHAR;
- var NativeError: SQLINTEGER;
- MessageText: PSQLWCHAR;
- BufferLength: SQLSMALLINT;
- var TextLength: SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetDiagField(
- HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;
- RecNumber:SQLSMALLINT;
- DiagIdentifier:SQLSMALLINT;
- DiagInfoPtr:SQLPOINTER;
- BufferLength:SQLSMALLINT;
- var StringLengthPtr:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLConnect(
- ConnectionHandle:SQLHDBC;
- ServerName:PSQLCHAR; NameLength1:SQLSMALLINT;
- UserName:PSQLCHAR; NameLength2:SQLSMALLINT;
- Authentication:PSQLCHAR;NameLength3:SQLSMALLINT
- ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLConnectW(
- ConnectionHandle: SQLHDBC;
- ServerName:PSQLWCHAR; NameLength1:SQLSMALLINT;
- UserName:PSQLWCHAR; NameLength2:SQLSMALLINT;
- Authentication:PSQLWCHAR;NameLength3:SQLSMALLINT
- ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDisconnect(
- ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDriverConnect(
- ConnectionHandle: SQLHDBC;
- WindowHandle: SQLHWND; InConnectionString: PSQLCHAR;
- StringLength1: SQLSMALLINT; OutConnectionString: PSQLCHAR;
- BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT;
- DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDriverConnectW(
- ConnectionHandle: SQLHDBC;
- WindowHandle: SQLHWND; InConnectionString: PSQLWCHAR;
- StringLength1: SQLSMALLINT; OutConnectionString: PSQLWCHAR;
- BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT;
- DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLBrowseConnect(
- hdbc : SQLHDBC;
- szConnStrIn :PSQLCHAR;
- cbConnStrIn: SQLSMALLINT;
- szConnStrOut : PSQLCHAR;
- cbConnStrOutMax : SQLSMALLINT;
- Var cbConnStrOut : SQLSMALLINT) : SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLExecDirect(
- StatementHandle:SQLHSTMT;
- StatementText: PSQLCHAR;
- TextLength: SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLExecDirectW(
- StatementHandle:SQLHSTMT;
- StatementText: PSQLWCHAR;
- TextLength: SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLParamData(
- StatementHandle:SQLHSTMT;
- ValuePtrPtr: PSQLPOINTER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLPrepare(
- StatementHandle:SQLHSTMT;
- StatementText:PSQLCHAR;
- TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLPrepareW(
- StatementHandle:SQLHSTMT;
- StatementText:PSQLWCHAR;
- TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLCloseCursor(
- StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLExecute(
- StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLFetch(
- StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLNumResultCols(
- StatementHandle:SQLHSTMT;
- var ColumnCount:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDescribeCol(
- StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;
- ColumnName:PSQLCHAR;
- BufferLength:SQLSMALLINT;
- var NameLength:SQLSMALLINT;
- var DataType:SQLSMALLINT;
- var ColumnSize:SQLULEN;
- var DecimalDigits:SQLSMALLINT;
- var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDescribeColW(
- StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;
- ColumnName:PSQLWCHAR;
- BufferLength:SQLSMALLINT;
- var NameLength:SQLSMALLINT;
- var DataType:SQLSMALLINT;
- var ColumnSize:SQLULEN;
- var DecimalDigits:SQLSMALLINT;
- var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLFetchScroll(
- StatementHandle:SQLHSTMT;
- FetchOrientation:SQLSMALLINT;
- FetchOffset:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLExtendedFetch(
- hstmt:SQLHSTMT;
- fFetchType:SQLUSMALLINT;
- irow:SQLLEN;
- pcrow:PSQLULEN;
- rgfRowStatus:PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetData(
- StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;
- TargetType:SQLSMALLINT;
- TargetValue:SQLPOINTER;
- BufferLength:SQLLEN;
- StrLen_or_Ind:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetStmtAttr(
- StatementHandle:SQLHSTMT;
- Attribute:SQLINTEGER;
- Value:SQLPOINTER;
- StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetStmtAttr(
- StatementHandle:SQLHSTMT;
- Attribute:SQLINTEGER;
- Value:SQLPOINTER;
- BufferLength:SQLINTEGER;
- StringLength:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetDescRec(
- DescriptorHandle:SQLHDESC;
- RecNumber:SQLSMALLINT; DescType, SubType:SQLSMALLINT;
- Length:SQLLEN; Precision, Scale: SQLSMALLINT;
- DataPtr:SQLPOINTER; StringLengthPtr,IndicatorPtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetFunctions(
- ConnectionHandle: SQLHDBC;
- FunctionId: SQLUSMALLINT;
- Supported: PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetInfo(
- ConnectionHandle:SQLHDBC;
- InfoType:SQLUSMALLINT;
- InfoValue:SQLPOINTER;
- BufferLength:SQLSMALLINT;
- StringLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLBulkOperations(
- StatementHandle: SQLHSTMT;
- Operation:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLPutData(
- StatementHandle:SQLHSTMT;
- Data:SQLPOINTER;
- StrLen_or_Ind:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLBindCol(
- StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;
- TargetType:SQLSMALLINT;
- TargetValue:SQLPOINTER;
- BufferLength:SQLLEN;
- StrLen_or_Ind:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetPos(
- StatementHandle:SQLHSTMT;
- RowNumber:SQLSETPOSIROW;
- Operation:SQLUSMALLINT;
- LockType:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDataSources(
- EnvironmentHandle:SQLHENV;
- Direction:SQLUSMALLINT;
- ServerName:PSQLCHAR;
- BufferLength1:SQLSMALLINT;
- NameLength1:PSQLSMALLINT;
- Description:PSQLCHAR;
- BufferLength2:SQLSMALLINT;
- NameLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDrivers(
- EnvironmentHandle:SQLHENV;
- Direction:SQLUSMALLINT;
- DriverDescription:PSQLCHAR;
- BufferLength1:SQLSMALLINT;
- DescriptionLength1:PSQLSMALLINT;
- DriverAttributes:PSQLCHAR;
- BufferLength2:SQLSMALLINT;
- AttributesLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetConnectAttr(ConnectionHandle: SQLHDBC;
- Attribute: SQLINTEGER; Value: SQLPOINTER;
- BufferLength: SQLINTEGER; StringLengthPtr: PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetConnectAttr(
- ConnectionHandle:SQLHDBC;
- Attribute:SQLINTEGER; Value:SQLPOINTER;
- StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLGetCursorName(
- StatementHandle:SQLHSTMT;
- CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
- NameLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLSetCursorName(
- StatementHandle:SQLHSTMT;
- CursorName:PSQLCHAR; NameLength:SQLSMALLINT
- ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLRowCount(
- StatementHandle:SQLHSTMT;
- var RowCount:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLBindParameter(
- hstmt:SQLHSTMT;
- ipar:SQLUSMALLINT;
- fParamType:SQLSMALLINT;
- fCType:SQLSMALLINT;
- fSqlType:SQLSMALLINT;
- cbColDef:SQLULEN;
- ibScale:SQLSMALLINT;
- rgbValue:SQLPOINTER;
- cbValueMax:SQLLEN;
- pcbValue:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLDescribeParam(
- StatementHandle: SQLHSTMT;
- ParameterNumber: SQLUSMALLINT;
- DataTypePtr: PSQLSMALLINT;
- ParameterSizePtr: PSQLULEN;
- DecimalDigitsPtr: PSQLSMALLINT;
- NullablePtr: PSQLSMALLINT): SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLFreeStmt(
- StatementHandle:SQLHSTMT;
- Option:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLColAttribute (
- StatementHandle:SQLHSTMT;
- ColumnNumber:SQLUSMALLINT;
- FieldIdentifier:SQLUSMALLINT;
- CharacterAttributePtr:SQLPOINTER;
- BufferLength:SQLSMALLINT;
- StringLengthPtr:PSQLSMALLINT;
- NumericAttributePtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- {$ifdef ODBCVER3}
- function SQLEndTran(
- HandleType:SQLSMALLINT;
- Handle:SQLHANDLE;
- CompletionType:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- {$endif}
- function SQLTables( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;
- cbTableName : SQLSMALLINT;
- szTableType : PSQLCHAR;
- cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLTablesW( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;
- cbTableName : SQLSMALLINT;
- szTableType : PSQLWCHAR;
- cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLColumns( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;
- cbTableName : SQLSMALLINT;
- szColumnName : PSQLCHAR;
- cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLColumnsW( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;
- cbTableName : SQLSMALLINT;
- szColumnName : PSQLWCHAR;
- cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLSpecialColumns(StatementHandle:SQLHSTMT;
- IdentifierType:SQLUSMALLINT;
- CatalogName:PSQLCHAR;
- NameLength1:SQLSMALLINT;
- SchemaName:PSQLCHAR;
- NameLength2:SQLSMALLINT;
- TableName:PSQLCHAR;
- NameLength3:SQLSMALLINT;
- Scope:SQLUSMALLINT;
- Nullable:SQLUSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLForeignKeys(StatementHandle: SQLHSTMT;
- PKCatalogName: PSQLCHAR; NameLength1: SQLSMALLINT;
- PKSchemaName: PSQLCHAR; NameLength2: SQLSMALLINT;
- PKTableName: PSQLCHAR; NameLength3: SQLSMALLINT;
- FKCatalogName: PSQLCHAR; NameLength4: SQLSMALLINT;
- FKSchemaName: PSQLCHAR; NameLength5: SQLSMALLINT;
- FKTableName: PSQLCHAR; NameLength6: SQLSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLForeignKeysW(StatementHandle: SQLHSTMT;
- PKCatalogName: PSQLWCHAR; NameLength1: SQLSMALLINT;
- PKSchemaName: PSQLWCHAR; NameLength2: SQLSMALLINT;
- PKTableName: PSQLWCHAR; NameLength3: SQLSMALLINT;
- FKCatalogName: PSQLWCHAR; NameLength4: SQLSMALLINT;
- FKSchemaName: PSQLWCHAR; NameLength5: SQLSMALLINT;
- FKTableName: PSQLWCHAR; NameLength6: SQLSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLProcedures( hstmt : SQLHSTMT;
- szTableQualifier : PSQLCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLCHAR;
- cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLProceduresW( hstmt : SQLHSTMT;
- szTableQualifier : PSQLWCHAR;
- cbTableQualifier : SQLSMALLINT;
- szTableOwner : PSQLWCHAR;
- cbTableOwner : SQLSMALLINT;
- szTableName : PSQLWCHAR;
- cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLPrimaryKeys(hstmt : SQLHSTMT;
- CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLCHAR; NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLPrimaryKeysW(hstmt : SQLHSTMT;
- CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLWCHAR; NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
- function SQLProcedureColumns(hstmt: SQLHSTMT;
- CatalogName: PSQLCHAR; NameLength1: SQLSMALLINT;
- SchemaName: PSQLCHAR; NameLength2: SQLSMALLINT;
- ProcName: PSQLCHAR; NameLength3: SQLSMALLINT;
- ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLStatistics(hstmt: SQLHSTMT;
- CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLCHAR; NameLength3:SQLSMALLINT;
- Unique:SQLUSMALLINT;
- Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- function SQLStatisticsW(hstmt: SQLHSTMT;
- CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT;
- SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT;
- TableName:PSQLWCHAR; NameLength3:SQLSMALLINT;
- Unique:SQLUSMALLINT;
- Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
- {$endif}
- // This function always load dynamic
- function DateStructToDateTime( b:PSQL_DATE_STRUCT):TDateTime;
- function DateTimeToDateStruct( b:TDateTime):SQL_DATE_STRUCT;
- procedure DateTime2TimeStampStruct( var Value:SQL_TIMESTAMP_STRUCT; b:TDateTime);
- Function TimeStampStructToDateTime( B : PSQL_TIMESTAMP_STRUCT) : TDateTime;
- Function TimeStructToDateTime (B : PSQL_TIME_STRUCT) : TDateTime;
- function DateTimeToTimeStruct(b: TDateTime) : SQL_TIME_STRUCT;
- function CurrToNumericStruct(c: currency): SQL_NUMERIC_STRUCT;
- {$IFDEF DYNLOADINGODBC}
- Procedure InitialiseODBC(OverrideName : string ='');
- Procedure ReleaseODBC;
- var ODBCLibraryHandle : TLibHandle;
- {$ENDIF}
- implementation
- {$IFDEF DYNLOADINGODBC}
- var RefCount : integer;
- Procedure InitialiseODBC(OverrideName : string ='');
- var libname : string;
- begin
- inc(RefCount);
- if RefCount = 1 then
- begin
- if OverrideName='' then
- libname:=odbclib
- else
- libname:=OverrideName;
- ODBCLibraryHandle := loadlibrary(libname);
- if ODBCLibraryHandle = nilhandle then
- begin
- RefCount := 0;
- Raise EInOutError.Create('Can not load ODBC client. Is it installed? ('+odbclib+')');
- end;
- {$ifdef fpc}
- // Ansi versions:
- pointer(SQLAllocHandle) := GetProcedureAddress(ODBCLibraryHandle,'SQLAllocHandle');
- pointer(SQLSetEnvAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetEnvAttr');
- pointer(SQLFreeHandle) := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeHandle');
- pointer(SQLGetFunctions) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetFunctions');
- pointer(SQLGetInfo) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetInfo');
- pointer(SQLSpecialColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLSpecialColumns');
- pointer(SQLGetDiagField) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagField');
- pointer(SQLDisconnect) := GetProcedureAddress(ODBCLibraryHandle,'SQLDisconnect');
- pointer(SQLCloseCursor) := GetProcedureAddress(ODBCLibraryHandle,'SQLCloseCursor');
- pointer(SQLExecute) := GetProcedureAddress(ODBCLibraryHandle,'SQLExecute');
- pointer(SQLFetch) := GetProcedureAddress(ODBCLibraryHandle,'SQLFetch');
- pointer(SQLNumResultCols) := GetProcedureAddress(ODBCLibraryHandle,'SQLNumResultCols');
- pointer(SQLFetchScroll) := GetProcedureAddress(ODBCLibraryHandle,'SQLFetchScroll');
- pointer(SQLExtendedFetch) := GetProcedureAddress(ODBCLibraryHandle,'SQLExtendedFetch');
- pointer(SQLGetData) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetData');
- pointer(SQLSetStmtAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetStmtAttr');
- pointer(SQLGetStmtAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetStmtAttr');
- pointer(SQLSetDescField) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetDescField');
- pointer(SQLSetDescRec) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetDescRec');
- pointer(SQLBulkOperations) := GetProcedureAddress(ODBCLibraryHandle,'SQLBulkOperations');
- pointer(SQLPutData) := GetProcedureAddress(ODBCLibraryHandle,'SQLPutData');
- pointer(SQLBindCol) := GetProcedureAddress(ODBCLibraryHandle,'SQLBindCol');
- pointer(SQLSetPos) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetPos');
- pointer(SQLDataSources) := GetProcedureAddress(ODBCLibraryHandle,'SQLDataSources');
- pointer(SQLDrivers) := GetProcedureAddress(ODBCLibraryHandle,'SQLDrivers');
- pointer(SQLGetConnectAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetConnectAttr');
- pointer(SQLSetConnectAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetConnectAttr');
- pointer(SQLGetCursorName) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetCursorName');
- pointer(SQLSetCursorName) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetCursorName');
- pointer(SQLRowCount) := GetProcedureAddress(ODBCLibraryHandle,'SQLRowCount');
- pointer(SQLBindParameter) := GetProcedureAddress(ODBCLibraryHandle,'SQLBindParameter');
- pointer(SQLDescribeParam) :=GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeParam');
- pointer(SQLParamData) :=GetProcedureAddress(ODBCLibraryHandle,'SQLParamData');
- pointer(SQLFreeStmt) := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeStmt');
- pointer(SQLColAttribute) := GetProcedureAddress(ODBCLibraryHandle,'SQLColAttribute');
- pointer(SQLEndTran) := GetProcedureAddress(ODBCLibraryHandle,'SQLEndTran');
- // Ansi versions:
- pointer(SQLConnectA) := GetProcedureAddress(ODBCLibraryHandle,'SQLConnect');
- pointer(SQLDriverConnectA) := GetProcedureAddress(ODBCLibraryHandle,'SQLDriverConnect');
- pointer(SQLExecDirectA) := GetProcedureAddress(ODBCLibraryHandle,'SQLExecDirect');
- pointer(SQLGetDiagRecA) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagRec');
- pointer(SQLPrepareA) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrepare');
- pointer(SQLDescribeColA) := GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeCol');
- pointer(SQLTablesA) := GetProcedureAddress(ODBCLibraryHandle,'SQLTables');
- pointer(SQLColumnsA) := GetProcedureAddress(ODBCLibraryHandle,'SQLColumns');
- pointer(SQLForeignKeysA) := GetProcedureAddress(ODBCLibraryHandle,'SQLForeignKeys');
- pointer(SQLPrimaryKeysA) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys');
- pointer(SQLProceduresA) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedures');
- pointer(SQLProcedureColumnsA) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns');
- pointer(SQLStatisticsA) := GetProcedureAddress(ODBCLibraryHandle,'SQLStatistics');
- SQLConnect := SQLConnectA;
- SQLDriverConnect := SQLDriverConnectA;
- SQLExecDirect := SQLExecDirectA;
- SQLGetDiagRec := SQLGetDiagRecA;
- SQLPrepare := SQLPrepareA;
- SQLDescribeCol := SQLDescribeColA;
- SQLTables := SQLTablesA;
- SQLColumns := SQLColumnsA;
- SQLPrimaryKeys := SQLPrimaryKeysA;
- SQLProcedures := SQLProceduresA;
- SQLProcedureColumns := SQLProcedureColumnsA;
- SQLStatistics := SQLStatisticsA;
- // Unicode versions:
- pointer(SQLConnectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLConnectW');
- pointer(SQLDriverConnectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLDriverConnectW');
- pointer(SQLExecDirectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLExecDirectW');
- pointer(SQLGetDiagRecW) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagRecW');
- pointer(SQLPrepareW) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrepareW');
- pointer(SQLDescribeColW) := GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeColW');
- pointer(SQLTablesW) := GetProcedureAddress(ODBCLibraryHandle,'SQLTablesW');
- pointer(SQLColumnsW) := GetProcedureAddress(ODBCLibraryHandle,'SQLColumnsW');
- pointer(SQLForeignKeysW) := GetProcedureAddress(ODBCLibraryHandle,'SQLForeignKeysW');
- pointer(SQLPrimaryKeysW) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeysW');
- pointer(SQLProceduresW) := GetProcedureAddress(ODBCLibraryHandle,'SQLProceduresW');
- pointer(SQLProcedureColumnsW) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumnsW');
- pointer(SQLStatisticsW) := GetProcedureAddress(ODBCLibraryHandle,'SQLStatisticsW');
- {$else}
- SQLAllocHandle := GetProcedureAddress(ODBCLibraryHandle,'SQLAllocHandle');
- SQLSetEnvAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetEnvAttr');
- SQLFreeHandle := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeHandle');
- SQLGetFunctions := GetProcedureAddress(ODBCLibraryHandle,'SQLGetFunctions');
- SQLGetInfo := GetProcedureAddress(ODBCLibraryHandle,'SQLGetInfo');
- SQLProcedures := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedures');
- SQLColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLColumns');
- SQLSpecialColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLSpecialColumns');
- SQLGetDiagRec := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagRec');
- SQLGetDiagField := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagField');
- SQLConnect := GetProcedureAddress(ODBCLibraryHandle,'SQLConnect');
- SQLDisconnect := GetProcedureAddress(ODBCLibraryHandle,'SQLDisconnect');
- SQLDriverConnect := GetProcedureAddress(ODBCLibraryHandle,'SQLDriverConnect');
- SQLExecDirect := GetProcedureAddress(ODBCLibraryHandle,'SQLExecDirect');
- SQLParamData := GetProcedureAddress(ODBCLibraryHandle,'SQLParamData');
- SQLPrepare := GetProcedureAddress(ODBCLibraryHandle,'SQLPrepare');
- SQLCloseCursor := GetProcedureAddress(ODBCLibraryHandle,'SQLCloseCursor');
- SQLExecute := GetProcedureAddress(ODBCLibraryHandle,'SQLExecute');
- SQLFetch := GetProcedureAddress(ODBCLibraryHandle,'SQLFetch');
- SQLNumResultCols := GetProcedureAddress(ODBCLibraryHandle,'SQLNumResultCols');
- SQLDescribeCol := GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeCol');
- SQLFetchScroll := GetProcedureAddress(ODBCLibraryHandle,'SQLFetchScroll');
- SQLExtendedFetch := GetProcedureAddress(ODBCLibraryHandle,'SQLExtendedFetch');
- SQLGetData := GetProcedureAddress(ODBCLibraryHandle,'SQLGetData');
- SQLSetStmtAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetStmtAttr');
- SQLGetStmtAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLGetStmtAttr');
- SQLSetDescField := GetProcedureAddress(ODBCLibraryHandle,'SQLSetDescField');
- SQLSetDescRec := GetProcedureAddress(ODBCLibraryHandle,'SQLSetDescRec');
- SQLBulkOperations := GetProcedureAddress(ODBCLibraryHandle,'SQLBulkOperations');
- SQLPutData := GetProcedureAddress(ODBCLibraryHandle,'SQLPutData');
- SQLBindCol := GetProcedureAddress(ODBCLibraryHandle,'SQLBindCol');
- SQLSetPos := GetProcedureAddress(ODBCLibraryHandle,'SQLSetPos');
- SQLDataSources := GetProcedureAddress(ODBCLibraryHandle,'SQLDataSources');
- SQLDrivers := GetProcedureAddress(ODBCLibraryHandle,'SQLDrivers');
- SQLGetConnectAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLGetConnectAttr');
- SQLSetConnectAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetConnectAttr');
- SQLGetCursorName := GetProcedureAddress(ODBCLibraryHandle,'SQLGetCursorName');
- SQLSetCursorName := GetProcedureAddress(ODBCLibraryHandle,'SQLSetCursorName');
- SQLRowCount := GetProcedureAddress(ODBCLibraryHandle,'SQLRowCount');
- SQLBindParameter := GetProcedureAddress(ODBCLibraryHandle,'SQLBindParameter');
- SQLGetFunctions := GetProcedureAddress(ODBCLibraryHandle,'SQLGetFunctions');
- SQLDescribeParam :=GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeParam');
- SQLFreeStmt := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeStmt');
- SQLColAttribute := GetProcedureAddress(ODBCLibraryHandle,'SQLColAttribute');
- SQLEndTran := GetProcedureAddress(ODBCLibraryHandle,'SQLEndTran');
- SQLTables := GetProcedureAddress(ODBCLibraryHandle,'SQLTables');
- SQLPrimaryKeys := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys');
- SQLProcedureColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns');
- SQLStatistics := GetProcedureAddress(ODBCLibraryHandle,'SQLStatistics');
- {$endif}
- end;
- end;
- Procedure ReleaseODBC;
- begin
- if RefCount > 0 then dec(RefCount);
- if RefCount = 0 then
- begin
- if not UnloadLibrary(ODBCLibraryHandle) then inc(RefCount);
- end;
- end;
- {$ENDIF}
- function DateStructToDateTime( b:PSQL_DATE_STRUCT):TDateTime;
- begin
- Result:=EncodeDate( b^.Year, b^.Month, b^.Day);
- end;
- function DateTimeToDateStruct( b:TDateTime):SQL_DATE_STRUCT;
- var
- y,m,d: Word;
- begin
- DecodeDate( b, y, m, d);
- with Result do
- begin
- Year:=y; Month:=m; Day:=d;
- end;
- end;
- procedure DateTime2TimeStampStruct( var Value:SQL_TIMESTAMP_STRUCT; b:TDateTime);
- var
- w1,w2,w3,w4: Word;
- begin
- with Value do
- begin
- DecodeDate(b,w1,w2,w3);
- Year := w1;
- Month := w2;
- Day := w3;
- DecodeTime(b,w1,w2,w3,w4);
- Hour := w1;
- Minute := w2;
- Second := w3;
- fraction := Integer(w4)*1000000;
- end;
- end;
- {
- SQL_DATE_STRUCT = packed record
- Year : SQLSMALLINT;
- Month : SQLUSMALLINT;
- Day : SQLUSMALLINT;
- end;
- PSQL_DATE_STRUCT = ^SQL_DATE_STRUCT;
- }
- Function TimeStampStructToDateTime( B : PSQL_TIMESTAMP_STRUCT) : TDateTime;
- begin
- With B^ do
- Result:=ComposeDateTime(EncodeDate(Year,Month,Day), EncodeTime(Hour,Minute,Second,Fraction div 1000000));
- end;
- Function TimeStructToDateTime (B : PSQL_TIME_STRUCT) : TDateTime;
- begin
- With B^ do
- begin
- // TryEncodeTime can not be used, because it doesn't supports times with more then 24 hours.
- Result:=TDateTime(cardinal(Hour)*3600000+cardinal(Minute)*60000+cardinal(Second)*1000)/MSecsPerDay;
- end;
- end;
- function DateTimeToTimeStruct(b: TDateTime) : SQL_TIME_STRUCT;
- var
- w1, w2, w3, w4: Word;
- begin
- DecodeTime(b, w1, w2, w3, w4);
- Result.Hour:=w1 + Trunc(b)*24;
- Result.Minute:=w2;
- Result.Second:=w3;
- end;
- function CurrToNumericStruct(c: currency): SQL_NUMERIC_STRUCT;
- var n: int64; i: integer;
- begin
- Result.precision:=18;
- Result.scale:=4;
- if c >= 0 then
- Result.sign:=1
- else begin
- Result.sign:=0;
- c := -c;
- end;
- n := NtoLE(Trunc(c)*10000 + Round(Frac(c)*10000));
- for i:=0 to high(Result.val) do begin
- Result.val[i] := n and $ff;
- n := n shr 8;
- end;
- end;
|