Такая вот фигня: пытаюсь добавить в таблицу поля (ALTER TABLE), тип и размер Char(200). Десять полей добавляются честно, а потом возникает ошибка: Слишком большой размер записи. Упс. Открываем Access и спокойненько ручками добавляем остальные поля (?!).
В чем дело ? Что лажает ? Драйвер ODBC ? И как это обходится ?
P.S. Мать мать мать... говорила же мне интуиция - надо на блобах все делать, нет решил по четному, правильно... и вот попал :(
Проблемма с ODBC или Access30.05.02 21:10 Автор: + <Mikhail> Статус: Elderman
> Такая вот фигня: пытаюсь добавить в таблицу поля (ALTER > TABLE), тип и размер Char(200). Десять полей добавляются > честно, а потом возникает ошибка: Слишком большой размер > записи. Упс. Открываем Access и спокойненько ручками > добавляем остальные поля (?!). > В чем дело ? Что лажает ? Драйвер ODBC ? И как это > обходится ? > > P.S. Мать мать мать... говорила же мне интуиция - надо на > блобах все делать, нет решил по четному, правильно... и вот > попал :(
Implicit Transactions
When a connection is operating in implicit transaction mode,
Microsoft® SQL Server™ automatically starts a new transaction
after the current transaction is committed or rolled back.
You do nothing to delineate the start of a transaction;
you only commit or roll back each transaction. Implicit
transaction mode generates a continuous chain of transactions.
After implicit transaction mode has been set on for a connection,
SQL Server automatically starts a transaction when it first
executes any of these statements:
ALTER TABLE INSERT
CREATE OPEN DELETE
REVOKE DROP SELECT
FETCH TRUNCATE TABLE
GRANT UPDATE
The transaction remains in effect until you issue
a COMMIT or ROLLBACK statement. After the first
transaction is committed or rolled back, SQL Server
automatically starts a new transaction the
next time any of these statements are executed by
the connection. SQL Server keeps generating
a chain of implicit transactions until implicit transaction
mode is turned off.
Implicit transaction mode is set either using
the Transact-SQL SET statement, or through
database API functions and methods.
> MS радует. > Ну хорошо, пусть у них COMMIT действует не только на DML... > а если под меня положат Oracle ? Что будет с моим COMMITом > ? > Мать мать мать... > > За текст спасибо. > > Если мой предыдущий ответ показался не очень дружелюбным - > не обращай внимание. Просто два паралельных проекта - > совсем меня добили. Проверять, с какой СУБД работаешь. Это надо делать в любом случае, если ты рассчитываешь на то, что твоя программа будет работать с разными СУБД, поскольку совместимость SQL-запросов для разных СУБД - вещь весьма относительная. В основном, если и декларируется, то Entry-level с ANSI-SQL, но каждая СУБД понимает это по-своему. :)