아래는 7.2 버젼의 시스템테이블 변경 사항입니다. OID 가 없어짐으로 인해 ZDE 가 제대로 동작을 하지 못하는 경우이지요. ZDE 를 7.2.1 에서 사용하려면 소스를 수정하여 재컴파일해야 합니다.
아무튼 제가 수정하여 사용하고 있는 소스를 첨부합니다. 기억이 오래 되어서 잘은 모르겠는데... main.pas 와 execute.pas 만 수정한것 같습니다.
[1] PostgreSQL 7.2 Changes
1. System Table with OID field
1) pg_aggregate
2) pg_am
3) pg_class
4) pg_database
5) pg_opclass
6) pg_operator
7) pg_proc
8) pg_rewrite
9) pg_trigger
10) pg_type
2. LIBPQ Changes
1) PQnotifyFree ==> PQfreeNotify
[2] ZEOSDBO Changes for PostgreSQL 7.2
1. Change TPQnotifyFree to TPQfreeNotify
1). Zlibpgsql.pas
Line No. 193: TPQnotifyFree = procedure(Handle: PPGnotify);cdecl;
To: TPQfreeNotify = procedure(Handle: PPGnotify);cdecl;
Line No. 265: PQnotifyFree: TPQnotifyFree;
To: PQfreeNotify: TPQfreeNotify;
Line No. 360: @PQnotifyFree := GetProcAddress(hDLL,'PQnotifyFree');
To: @PQfreeNotify := GetProcAddress(hDLL,'PQfreeNotify');
2). Zdirpgsql.pas
Line No. 1161: PQnotifyFree(FHandle);
To: PQfreeNotify(FHandle);
Line No. 1214: PQnotifyFree(FHandle);
To: PQfreeNotify(FHandle);
2. Change because of pg_index without OID
1) Zdirpgsql.pas
Line No. 945: Sql := 'SELECT i.oid AS index, t1.relname AS name, t2.relname AS table,'
To: Sql := 'SELECT i.indexrelid AS index, t1.relname AS name, t2.relname AS table,'
3. To initialize doUseRowId false
1) Zquery.pas
Line No. 509: FOptions := [doHourGlass, doAutoFillDefs, doUseRowId];
To: FOptions := [doHourGlass, doAutoFillDefs];
4. libpq.dll building
1) following PostgreSQL V7.2 documentation, execute "nmake /f win32.mak" on msdos prompt, but you must have VC++.
After change and install, I tested zde building. It's working.
Check yourself !!!
|