dima_si
Новичок
Вновь прошу помощи.
при сбросе подключения пропадают записи, счетчик тикает с учетом пропавших записей.
Microsoft SQL Server Management Studio 9.00.3042.00
Клиентские средства служб Microsoft Analysis Services 2005.090.3042.00
Компоненты доступа к данным (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
PHP Version 5.2.17
Ситуация следующая (проект рабочий), везде заходим из под одного и того же пользователя, в системе присутствуют модули работы с данной таблицей, которые работают нормально, при этом обращение к таблице идет через один и тот же класс (подключение, выполнение запроса, отключение):
1. PHP скрипт отрабатывает обращение к базе инструкцией INSERT,
2. после чего в том же скрипте выполняется проверка существования записи (так на дурака), которая показывает, что запись существует, при этом возвращает ее ID, скрипт завершен.
3. Далее соединение разрывается.
4. В другом скрипте, формируется соединение, производится попытка поиска сформированной строки - результат строка не найдена.
5. Входим из под Microsoft SQL Server Management Studio - формируем точно такой же запрос, который выполнял проверку на 2 шаге - результат строка не найдена.
6. из под Microsoft SQL Server Management Studio формируем запрос INSERT, который отрабатывался на 1 шаге
7. из под Microsoft SQL Server Management Studio просматриваем базу - строка шага 7 существует, ее ID на 1 более нежели результат на шаге 2.
8. разрываем соединение и выходим из Microsoft SQL Server Management Studio
9. Входим из под Microsoft SQL Server Management Studio, просматриваем базу - строки созданные на всех вышеописанных шагах отсутствуют, при этом их индексы не посчитаны не в общем количестве записей, не в порядковом коде, при этом очередное добавление записи учитывает прирост индекса на всех описанных шагах.
попробую описать ситуацию примером:
исходное состояние таблицы, 1 запись с индексом 1
PHP > соединение => INSERT .... => SELECT id FROM ... => результат 2 =>разрыв соединения
PHP > соединение => SELECT id FROM ... => результат 1 =>разрыв соединения
Microsoft SQL Server Management Studio > соединение => SELECT id FROM ... => результат 1 => INSERT .... => SELECT id FROM ... => результат 3 =>разрыв соединения
Microsoft SQL Server Management Studio > соединение => SELECT id FROM ... => результат 1 => INSERT .... => SELECT id FROM ... => результат 4 =>разрыв соединения
голову уже сломал, конечно же в рабочей таблице не одна запись, а более 100 тыс. записей, пробовал все эти действия на развернутой копии, там все работает нормально, ненормального поведения не наблюдается. следовательно делаю заключение, что все та-ки это не логика, на таблицу навешаны триггеры, ключи, ограничения и индексы, все проверял. В ограничениях заданы значения по умолчанию (бред но это так), все записи ключей, касаемые создаваемых записей существуют, в триггерах операций удаления не присутствует, триггеры вообще не видоизменяют текущую таблицу, просто формируют записи в других таблицах).
подскажите что может быть, кто-то сталкивался с таким ?
при сбросе подключения пропадают записи, счетчик тикает с учетом пропавших записей.
Microsoft SQL Server Management Studio 9.00.3042.00
Клиентские средства служб Microsoft Analysis Services 2005.090.3042.00
Компоненты доступа к данным (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
PHP Version 5.2.17
Ситуация следующая (проект рабочий), везде заходим из под одного и того же пользователя, в системе присутствуют модули работы с данной таблицей, которые работают нормально, при этом обращение к таблице идет через один и тот же класс (подключение, выполнение запроса, отключение):
1. PHP скрипт отрабатывает обращение к базе инструкцией INSERT,
2. после чего в том же скрипте выполняется проверка существования записи (так на дурака), которая показывает, что запись существует, при этом возвращает ее ID, скрипт завершен.
3. Далее соединение разрывается.
4. В другом скрипте, формируется соединение, производится попытка поиска сформированной строки - результат строка не найдена.
5. Входим из под Microsoft SQL Server Management Studio - формируем точно такой же запрос, который выполнял проверку на 2 шаге - результат строка не найдена.
6. из под Microsoft SQL Server Management Studio формируем запрос INSERT, который отрабатывался на 1 шаге
7. из под Microsoft SQL Server Management Studio просматриваем базу - строка шага 7 существует, ее ID на 1 более нежели результат на шаге 2.
8. разрываем соединение и выходим из Microsoft SQL Server Management Studio
9. Входим из под Microsoft SQL Server Management Studio, просматриваем базу - строки созданные на всех вышеописанных шагах отсутствуют, при этом их индексы не посчитаны не в общем количестве записей, не в порядковом коде, при этом очередное добавление записи учитывает прирост индекса на всех описанных шагах.
попробую описать ситуацию примером:
исходное состояние таблицы, 1 запись с индексом 1
PHP > соединение => INSERT .... => SELECT id FROM ... => результат 2 =>разрыв соединения
PHP > соединение => SELECT id FROM ... => результат 1 =>разрыв соединения
Microsoft SQL Server Management Studio > соединение => SELECT id FROM ... => результат 1 => INSERT .... => SELECT id FROM ... => результат 3 =>разрыв соединения
Microsoft SQL Server Management Studio > соединение => SELECT id FROM ... => результат 1 => INSERT .... => SELECT id FROM ... => результат 4 =>разрыв соединения
голову уже сломал, конечно же в рабочей таблице не одна запись, а более 100 тыс. записей, пробовал все эти действия на развернутой копии, там все работает нормально, ненормального поведения не наблюдается. следовательно делаю заключение, что все та-ки это не логика, на таблицу навешаны триггеры, ключи, ограничения и индексы, все проверял. В ограничениях заданы значения по умолчанию (бред но это так), все записи ключей, касаемые создаваемых записей существуют, в триггерах операций удаления не присутствует, триггеры вообще не видоизменяют текущую таблицу, просто формируют записи в других таблицах).
подскажите что может быть, кто-то сталкивался с таким ?