Проблема с [PHP + Oracle OCI] Bind variable
От: ShaggyOne  
Дата: 26.07.07 09:08
Оценка:
Всем привет, может кто сталкивался с такой проблемой:
Вообщем так: выполняю следующий запрос
INSERT INTO zagorski.zvatStructAddress
                (idCountry, idTerritory, idRegion, idCity, idStreet, House, Frame, Flat)
        VALUES
                (?d, ?d, ?d, ?d, ?, ?, ?, ?)
        RETURNING idStructAddress
             INTO :ret

временами он отрабатывает нормально в прибинденой к :ret переменной хранится значение столбца idStructAddress, сгенерённое триггером по последовательности.

Вообщем всё классно, но... Стоит выполнить один аналогичный запрос к таблице в DB менеджере для Oracle, как :ret начинает возвращать левое число начиная единицы и которое оно увеличивается каждые 3/4 запроса на 1.

— переменная биндится нормально;
— таблица успешно заполняется данными;
— лечится сиё безобразие удалением таблицы и связанных с ней объектов и созданием их заново.

вопрос: Шо за нафиг, как сиё безобразие лечить?

p.s. юзаю DBSimple, сваял для него простенький драйвер .
Re: Проблема с [PHP + Oracle OCI] Bind variable
От: Аноним  
Дата: 26.07.07 09:39
Оценка: 2 (1)
тоже нарывался на такое, выходил из положением разбивая на отдельный инсерт и последующее выяснением CURVAL у сиквенса.
Re: Проблема с [PHP + Oracle OCI] Bind variable
От: wildwind Россия  
Дата: 26.07.07 14:55
Оценка: 2 (1)
Здравствуйте, ShaggyOne, Вы писали:

SO>временами он отрабатывает нормально в прибинденой к :ret переменной хранится значение столбца idStructAddress, сгенерённое триггером по последовательности.


Покажи триггер

SO>- таблица успешно заполняется данными;

А idStructAddress там из последовательности или те, левые?
Re[2]: Проблема с [PHP + Oracle OCI] Bind variable
От: ShaggyOne  
Дата: 27.07.07 03:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>тоже нарывался на такое, выходил из положением разбивая на отдельный инсерт и последующее выяснением CURVAL у сиквенса.


Коллеги, спасибо за участие

Вроде решил проблему:

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]] )


Просто указал необязательный параметр maxlength, день тестирую, пока усё ок (скрестил пальцы, и пляшу с бубном )...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.