Mht. de reserverede navne så har jeg en function som tester om navnet er reserveret, men man kan jo bare sætte [] altid.
Den er til sql men gælder sikkert osse for access, næsten.
function _testNameReserved(const s: string): boolean;
const
count = 5*36;
keywords: array[1..count] of string = (
'ADD','EXCEPT','PERCENT','ALL','EXEC',
'PLAN','ALTER','EXECUTE','PRECISION','AND',
'EXISTS','PRIMARY','ANY','EXIT','PRINT',
'AS','FETCH','PROC','ASC','FILE',
'PROCEDURE','AUTHORIZATION','FILLFACTOR','PUBLIC','BACKUP',
'FOR','RAISERROR','BEGIN','FOREIGN','READ',
'BETWEEN','FREETEXT','READTEXT','BREAK','FREETEXTTABLE',
'RECONFIGURE','BROWSE','FROM','REFERENCES','BULK',
'FULL','REPLICATION','BY','FUNCTION','RESTORE',
'CASCADE','GOTO','RESTRICT','CASE','GRANT',
'RETURN','CHECK','GROUP','REVOKE','CHECKPOINT',
'HAVING','RIGHT','CLOSE','HOLDLOCK','ROLLBACK',
'CLUSTERED','IDENTITY','ROWCOUNT','','',
'COALESCE','IDENTITY_INSERT','ROWGUIDCOL','COLLATE','IDENTITYCOL',
'RULE','COLUMN','IF','SAVE','COMMIT',
'IN','SCHEMA','COMPUTE','INDEX','SELECT',
'CONSTRAINT','INNER','SESSION_USER','CONTAINS','INSERT',
'SET','CONTAINSTABLE','INTERSECT','SETUSER','CONTINUE',
'INTO','SHUTDOWN','CONVERT','IS','SOME',
'CREATE','JOIN','STATISTICS','CROSS','KEY',
'SYSTEM_USER','CURRENT','KILL','TABLE','CURRENT_DATE',
'LEFT','TEXTSIZE','CURRENT_TIME','LIKE','THEN',
'CURRENT_TIMESTAMP','LINENO','TO','CURRENT_USER','LOAD',
'TOP','CURSOR','NATIONAL','TRAN','DATABASE',
'NOCHECK','TRANSACTION','DBCC','NONCLUSTERED','TRIGGER',
'DEALLOCATE','NOT','TRUNCATE','DECLARE','NULL',
'TSEQUAL','DEFAULT','NULLIF','UNION','',
'DELETE','OF','UNIQUE','DENY','OFF',
'UPDATE','DESC','OFFSETS','UPDATETEXT','DISK',
'ON','USE','DISTINCT','OPEN','USER',
'DISTRIBUTED','OPENDATASOURCE','VALUES','DOUBLE','OPENQUERY',
'VARYING','DROP','OPENROWSET','VIEW','DUMMY',
'OPENXML','WAITFOR','DUMP','OPTION','WHEN',
'ELSE','OR','WHERE','END','ORDER',
'WHILE','ERRLVL','OUTER','WITH','ESCAPE',
'OVER','WRITETEXT','','',''
);
var
i: integer;
begin
for i:=1 to count do
if lowercase(s)=lowercase(keywords[i]) then begin
result:=true;
exit;
end;
result:=false;
end; //test name reserved