Страница 1 из 1

SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 10:17:25
whs
Я что-то, не понял, как правильно создать таблицу например в базе MSSQL. Следующий код создает таблицу но после выхода из приложения в базе её нету.
Код: Выделить всё
SqlConnBuilderForm.SQLQuery2.SQL.Clear;
SqlConnBuilderForm.SQLQuery2.SQL.Text:=EdtInSQL.text;
SqlConnBuilderForm.SQLQuery2.ExecSQL;         

И что то...не идёт.

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 12:15:19
Deimos
whs писал(а):SqlConnBuilderForm.SQLQuery2.SQL.Text:=EdtInSQL.text;


EdtInSQL.text какую строку содержит?

Для MySQL (не думаю, что в MS есть глобальные отличия)

Код: Выделить всё
query.SQL.Add('CREATE TABLE if not exists user(user_id integer NOT NULL AUTO_INCREMENT, user_name text (50), PRIMARY KEY(user_id)) ENGINE=MyISAM DEFAULT CHARSET=utf8;)


какие компоненты используешь? Commit есть?

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 12:21:14
whs
Deimos писал(а):EdtInSQL.text какую строку содержит?

Содержит самое простое
Код: Выделить всё
CREATE TABLE NeWTable (date datetime)


Код: Выделить всё
query.SQL.Add('CREATE TABLE if not exists user(user_id integer NOT NULL AUTO_INCREMENT, user_name text (50), PRIMARY KEY(user_id)) ENGINE=MyISAM DEFAULT CHARSET=utf8;)

какие компоненты используешь? Commit есть?

Стандартные компоненты ODBCConnect, SQLQuery, SQLTransaction, MSSQLConnection. Наличие Commit не влияет на результат.

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 15:35:52
stanilar
Некоторые компоненты требуют для такого рода действий не Query, а что-то типа SQLScript или SQLCommand.

P/S/ За все время работы так и не удосужился посмотреть реализацию, чтоб понять почему так происходит.

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 16:37:27
DYUMON
У тебя там при старте программы никакие транзакции не открываются случаем которые потом по умолчанию отроликаваются(roolback)?

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 17:08:05
whs
DYUMON писал(а):У тебя там при старте программы никакие транзакции не открываются случаем которые потом по умолчанию отроликаваются(roolback)?

Может, открываются, но вот с чего бы им откатываться. Я не вижу причин.

P.S Проверил, да действительно проблема была в транзакциях. Выставил коммит по дефолту и прописал к какой базе ему цепляться, и вроде заработало. Спасибо тебе, я осознал на сколько это была глупая ошибка.

Re: SQL и CREATETABLE

СообщениеДобавлено: 09.10.2015 17:11:51
DYUMON
там по умолчанию вообще стоит rollback