unit uDASQL92Interfaces; {----------------------------------------------------------------------------} { Data Abstract Library - Driver Library } { } { compiler: Delphi 6 and up } { platform: Win32 } { } { (c)opyright RemObjects Software. all rights reserved. } { } { Using this code requires a valid license of the Data Abstract } { which can be obtained at http://www.remobjects.com. } {----------------------------------------------------------------------------} {$I DataAbstract.inc} interface function SQL92_IdentifierNeedsQuoting(const iIdentifier: string): boolean; implementation uses SysUtils; var sql92_reservedwords : array of string; function SQL92_IdentifierNeedsQuoting(const iIdentifier: string): boolean; var L, H, I, r : Integer; begin Result := pos('.', iIdentifier) > 0; if Result then Exit; l := 0; h := Length(sql92_reservedwords) - 1; while l <= h do begin i := (L + H) shr 1; r := CompareText(iIdentifier, sql92_reservedwords[i]); if r < 0 then h := i - 1 else if r > 0 then l := i + 1 else begin result := true; exit; end; end; end; procedure SQL92_InitializeReservedWords; begin SetLength(sql92_reservedwords, 225); sql92_reservedwords[0] := 'ABSOLUTE'; sql92_reservedwords[1] := 'ACTION'; sql92_reservedwords[2] := 'ADD'; sql92_reservedwords[3] := 'ALL'; sql92_reservedwords[4] := 'ALLOCATE'; sql92_reservedwords[5] := 'ALTER'; sql92_reservedwords[6] := 'AND'; sql92_reservedwords[7] := 'ANY'; sql92_reservedwords[8] := 'ARE'; sql92_reservedwords[9] := 'AS'; sql92_reservedwords[10] := 'ASC'; sql92_reservedwords[11] := 'ASSERTION'; sql92_reservedwords[12] := 'AT'; sql92_reservedwords[13] := 'AUTHORIZATION'; sql92_reservedwords[14] := 'AVG'; sql92_reservedwords[15] := 'BEGIN'; sql92_reservedwords[16] := 'BETWEEN'; sql92_reservedwords[17] := 'BIT'; sql92_reservedwords[18] := 'BIT_LENGTH'; sql92_reservedwords[19] := 'BOTH'; sql92_reservedwords[20] := 'BY'; sql92_reservedwords[21] := 'CASCADE'; sql92_reservedwords[22] := 'CASCADED'; sql92_reservedwords[23] := 'CASE'; sql92_reservedwords[24] := 'CAST'; sql92_reservedwords[25] := 'CATALOG'; sql92_reservedwords[26] := 'CHAR'; sql92_reservedwords[27] := 'CHAR_LENGTH'; sql92_reservedwords[28] := 'CHARACTER'; sql92_reservedwords[29] := 'CHARACTER_LENGTH'; sql92_reservedwords[30] := 'CHECK'; sql92_reservedwords[31] := 'CLOSE'; sql92_reservedwords[32] := 'COALESCE'; sql92_reservedwords[33] := 'COLLATE'; sql92_reservedwords[34] := 'COLLATION'; sql92_reservedwords[35] := 'COLUMN'; sql92_reservedwords[36] := 'COMMIT'; sql92_reservedwords[37] := 'CONNECT'; sql92_reservedwords[38] := 'CONNECTION'; sql92_reservedwords[39] := 'CONSTRAINT'; sql92_reservedwords[40] := 'CONSTRAINTS'; sql92_reservedwords[41] := 'CONTINUE'; sql92_reservedwords[42] := 'CONVERT'; sql92_reservedwords[43] := 'CORRESPONDING'; sql92_reservedwords[44] := 'COUNT'; sql92_reservedwords[45] := 'CREATE'; sql92_reservedwords[46] := 'CROSS'; sql92_reservedwords[47] := 'CURRENT'; sql92_reservedwords[48] := 'CURRENT_DATE'; sql92_reservedwords[49] := 'CURRENT_TIME'; sql92_reservedwords[50] := 'CURRENT_TIMESTAMP'; sql92_reservedwords[51] := 'CURRENT_USER'; sql92_reservedwords[52] := 'DATE'; sql92_reservedwords[53] := 'DAY'; sql92_reservedwords[54] := 'DEALLOCATE'; sql92_reservedwords[55] := 'DEC'; sql92_reservedwords[56] := 'DECIMAL'; sql92_reservedwords[57] := 'DECLARE'; sql92_reservedwords[58] := 'DEFAULT'; sql92_reservedwords[59] := 'DEFERRABLE'; sql92_reservedwords[60] := 'DEFERRED'; sql92_reservedwords[61] := 'DELETE'; sql92_reservedwords[62] := 'DESC'; sql92_reservedwords[63] := 'DESCRIBE'; sql92_reservedwords[64] := 'DESCRIPTOR'; sql92_reservedwords[65] := 'DIAGNOSTICS'; sql92_reservedwords[66] := 'DISCONNECT'; sql92_reservedwords[67] := 'DISTINCT'; sql92_reservedwords[68] := 'DOMAIN'; sql92_reservedwords[69] := 'DOUBLE'; sql92_reservedwords[70] := 'DROP'; sql92_reservedwords[71] := 'ELSE'; sql92_reservedwords[72] := 'END'; sql92_reservedwords[73] := 'END-EXEC'; sql92_reservedwords[74] := 'ESCAPE'; sql92_reservedwords[75] := 'EXCEPT'; sql92_reservedwords[76] := 'EXCEPTION'; sql92_reservedwords[77] := 'EXEC'; sql92_reservedwords[78] := 'EXECUTE'; sql92_reservedwords[79] := 'EXISTS'; sql92_reservedwords[80] := 'EXTERNAL'; sql92_reservedwords[81] := 'EXTRACT'; sql92_reservedwords[82] := 'FALSE'; sql92_reservedwords[83] := 'FETCH'; sql92_reservedwords[84] := 'FLOAT'; sql92_reservedwords[85] := 'FOR'; sql92_reservedwords[86] := 'FOREIGN'; sql92_reservedwords[87] := 'FOUND'; sql92_reservedwords[88] := 'FROM'; sql92_reservedwords[89] := 'FULL'; sql92_reservedwords[90] := 'GET'; sql92_reservedwords[91] := 'GLOBAL'; sql92_reservedwords[92] := 'GO'; sql92_reservedwords[93] := 'GOTO'; sql92_reservedwords[94] := 'GRANT'; sql92_reservedwords[95] := 'GROUP'; sql92_reservedwords[96] := 'HAVING'; sql92_reservedwords[97] := 'HOUR'; sql92_reservedwords[98] := 'IDENTITY'; sql92_reservedwords[99] := 'IMMEDIATE'; sql92_reservedwords[100] := 'IN'; sql92_reservedwords[101] := 'INDICATOR'; sql92_reservedwords[102] := 'INITIALLY'; sql92_reservedwords[103] := 'INNER'; sql92_reservedwords[104] := 'INPUT'; sql92_reservedwords[105] := 'INSENSITIVE'; sql92_reservedwords[106] := 'INSERT'; sql92_reservedwords[107] := 'INT'; sql92_reservedwords[108] := 'INTEGER'; sql92_reservedwords[109] := 'INTERSECT'; sql92_reservedwords[110] := 'INTERVAL'; sql92_reservedwords[111] := 'INTO'; sql92_reservedwords[112] := 'IS'; sql92_reservedwords[113] := 'ISOLATION'; sql92_reservedwords[114] := 'JOIN'; sql92_reservedwords[115] := 'KEY'; sql92_reservedwords[116] := 'LANGUAGE'; sql92_reservedwords[117] := 'LAST'; sql92_reservedwords[118] := 'LEADING'; sql92_reservedwords[119] := 'LEFT'; sql92_reservedwords[120] := 'LEVEL'; sql92_reservedwords[121] := 'LIKE'; sql92_reservedwords[122] := 'LOCAL'; sql92_reservedwords[123] := 'LOWER'; sql92_reservedwords[124] := 'MATCH'; sql92_reservedwords[125] := 'MAX'; sql92_reservedwords[126] := 'MIN'; sql92_reservedwords[127] := 'MINUTE'; sql92_reservedwords[128] := 'MODULE'; sql92_reservedwords[129] := 'MONTH'; sql92_reservedwords[130] := 'NAMES'; sql92_reservedwords[131] := 'NATIONAL'; sql92_reservedwords[132] := 'NATURAL'; sql92_reservedwords[133] := 'NCHAR'; sql92_reservedwords[134] := 'NEXT'; sql92_reservedwords[135] := 'NO'; sql92_reservedwords[136] := 'NOT'; sql92_reservedwords[137] := 'NULL'; sql92_reservedwords[138] := 'NULLIF'; sql92_reservedwords[139] := 'NUMERIC'; sql92_reservedwords[140] := 'OCTET_LENGTH'; sql92_reservedwords[141] := 'OF'; sql92_reservedwords[142] := 'ON'; sql92_reservedwords[143] := 'ONLY'; sql92_reservedwords[144] := 'OPEN'; sql92_reservedwords[145] := 'OPTION'; sql92_reservedwords[146] := 'OR'; sql92_reservedwords[147] := 'ORDER'; sql92_reservedwords[148] := 'OUTER'; sql92_reservedwords[149] := 'OUTPUT'; sql92_reservedwords[150] := 'OVERLAPS'; sql92_reservedwords[151] := 'PAD'; sql92_reservedwords[152] := 'PARTIAL'; sql92_reservedwords[153] := 'POSITION'; sql92_reservedwords[154] := 'PRECISION'; sql92_reservedwords[155] := 'PREPARE'; sql92_reservedwords[156] := 'PRESERVE'; sql92_reservedwords[157] := 'PRIMARY'; sql92_reservedwords[158] := 'PRIOR'; sql92_reservedwords[159] := 'PRIVILEGES'; sql92_reservedwords[160] := 'PROCEDURE'; sql92_reservedwords[161] := 'PUBLIC'; sql92_reservedwords[162] := 'READ'; sql92_reservedwords[163] := 'REAL'; sql92_reservedwords[164] := 'REFERENCES'; sql92_reservedwords[165] := 'RELATIVE'; sql92_reservedwords[166] := 'RESTRICT'; sql92_reservedwords[167] := 'REVOKE'; sql92_reservedwords[168] := 'RIGHT'; sql92_reservedwords[169] := 'ROLLBACK'; sql92_reservedwords[170] := 'ROWS'; sql92_reservedwords[171] := 'SCHEMA'; sql92_reservedwords[172] := 'SCROLL'; sql92_reservedwords[173] := 'SECTION'; sql92_reservedwords[174] := 'SELECT'; sql92_reservedwords[175] := 'SESSION'; sql92_reservedwords[176] := 'SESSION_USER'; sql92_reservedwords[177] := 'SET'; sql92_reservedwords[178] := 'SIZE'; sql92_reservedwords[179] := 'SMALLINT'; sql92_reservedwords[180] := 'SOME'; sql92_reservedwords[181] := 'SPACE'; sql92_reservedwords[182] := 'SQL'; sql92_reservedwords[183] := 'SQLCODE'; sql92_reservedwords[184] := 'SQLERROR'; sql92_reservedwords[185] := 'SQLSTATE'; sql92_reservedwords[186] := 'SQLWARNING'; sql92_reservedwords[187] := 'SUBSTRING'; sql92_reservedwords[188] := 'SUM'; sql92_reservedwords[189] := 'SYSTEM_USER'; sql92_reservedwords[190] := 'TABLE'; sql92_reservedwords[191] := 'TEMPORARY'; sql92_reservedwords[192] := 'THEN'; sql92_reservedwords[193] := 'TIME'; sql92_reservedwords[194] := 'TIMESTAMP'; sql92_reservedwords[195] := 'TIMEZONE_HOUR'; sql92_reservedwords[196] := 'TIMEZONE_MINUTE'; sql92_reservedwords[197] := 'TO'; sql92_reservedwords[198] := 'TRAILING'; sql92_reservedwords[199] := 'TRANSACTION'; sql92_reservedwords[200] := 'TRANSLATE'; sql92_reservedwords[201] := 'TRANSLATION'; sql92_reservedwords[202] := 'TRIM'; sql92_reservedwords[203] := 'TRUE'; sql92_reservedwords[204] := 'UNION'; sql92_reservedwords[205] := 'UNIQUE'; sql92_reservedwords[206] := 'UNKNOWN'; sql92_reservedwords[207] := 'UPDATE'; sql92_reservedwords[208] := 'UPPER'; sql92_reservedwords[209] := 'USAGE'; sql92_reservedwords[210] := 'USER'; sql92_reservedwords[211] := 'USING'; sql92_reservedwords[212] := 'VALUE'; sql92_reservedwords[213] := 'VALUES'; sql92_reservedwords[214] := 'VARCHAR'; sql92_reservedwords[215] := 'VARYING'; sql92_reservedwords[216] := 'VIEW'; sql92_reservedwords[217] := 'WHEN'; sql92_reservedwords[218] := 'WHENEVER'; sql92_reservedwords[219] := 'WHERE'; sql92_reservedwords[220] := 'WITH'; sql92_reservedwords[221] := 'WORK'; sql92_reservedwords[222] := 'WRITE'; sql92_reservedwords[223] := 'YEAR'; sql92_reservedwords[224] := 'ZONE'; end; initialization sql92_InitializeReservedWords; finalization sql92_reservedwords := nil; end.