Скрипт не видит только что вставленные данные.

igor_ua

Новичок
Скрипт не видит только что вставленные данные.

Здравствуйте.
Есть класс который работает с БД (Firebird 1.5) class OMS.
После создания класса вызываем метод $OMS->add() этого класса, в котором выполняем действия такого типа:


$t = ibase_trans();
....
UPDATE ...
UPDATE ...
INSERT ...
/* Query соответственно с $t выполняются, т.е. с текущей транзакцией */
ibase_commit_ret($t);


Повторяем в цикле n-ое колличество раз вызов этого метода.

НО. Вставляю данные такого типа: каждое последующее имеет связь с предыдущим. Т.е. пытаюсь построить дерево с одной веткой, где каждый последующий вызов метода добавляет новый узел, а этот узел в сдедующем запросе становится родителем нового узла.
Так вот, при втором вызове метода скрипт не видит предыдущего добавления... Хотя из др. приложения видно что все добавленно (при отладке: пошаговом выполнении).

Если же в цикле уничтожать этот класс и создать его снова, то все ок.
(т.е. получается закрываем соединение и снова его создаем).
Причем, не зависимо от типа соединения: connect или pconnect.

Почему такое происходит?

Спасибо.

-~{}~ 04.09.05 23:51:

Перечитал еще раз статью http://www.ibase.ru/devinfo/ibtrans.htm и сделал такой вывод:
Изменения сделанные в транзакции будут видны только в другой транзакции при соответствующем ее объявлении (IBASE_COMMITTED | IBASE_REC_VERSION ). В моем случае если SELECT делать вне какой-либо транзакции, то резултатов не будет видно.
П.С. честно говоря я так и не понял почему вне транзакции ее результат не виден... Буду читать.
 
Сверху