Posted By: snake (keeping on the sunny side) on 'CZdatabases' Title: Strange things happen - ECPG na Postgresu 6.5.2 Date: Mon Jan 24 23:08:42 2000 Hi all! Nevim, jestli to patri na czprogramming, czunix nebo spis sem. V kazdym pripade bych hrozne mocuvital pomoc: ---- padajici verze --- int db_fce(var1) EXEC SQL BEGIN DECLARE SECTION; char* var1; // nepomuze ani char var[30] - pada uplne stejne, i kdyz to [30] EXEC SQL END DECLARE SECTION; // by melo byt "spravnejsi { EXEC SQL SELECT sloupec INTO :var1 FROM tabulka; } ---- prekompilatorem naprosto "stejne" prelozena, ale nepadajici verze: int db_fce(char* var1) { EXEC SQL BEGIN DECLARE SECTION; char var2[30]; // nejdriv si vytvorim "klon", ale UVNITR {} EXEC SQL END DECLARE SECTION; EXEC SQL SELECT sloupec INTO :var2 FROM tabulka; strcpy(var1,var2); } No a ted babo rad. Kdyz jsem se dival na vypis, co vytvori prekompilator, vypadal v druhem pripade _nachlup_ stejne (pokud nahore bylo var1[30]) - akorat bylo "1" nahrazeno "2"!!! Pritom v prvnim pripade pri pridani testovaciho printf("%p",var1) se ukazatel zmenil po vykonani SELECTu. Pokud jsem udelal ale ten druhy priklad a nechal si vypisovat ukazatel na var2, ten se mi nezmenil a ukazoval porad stejne. Nasel jsem chybu v kompilatoru gcc nebo kde mam hledat chybu? Opakoval jsem to vicekrat na svem i na cizim (jiny CPU, pamet, gcc i postgres (6.5.3)) a chovalo se to stejne. snake P.S. Pomoooooooooooc;-|