Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 12:51   #1
boshki
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 19
По умолчанию ошибка синтаксиса в инструкции create table

Код:
Procedure tform1.tableExists;
var
list:tstringlist;
begin
   list := tstringlist.Create;
   adoconnection1.GetTableNames(list);
   if list.indexOf(pkname) = -1 then
     begin
     form1.Query.SQL.Clear;
     form1.Query.SQL.Text:='CREATE TABLE '+pkname+'(level integer NOT NULL, link char(250) NOT NULL, group char(250) NOT NULL, subgroup char(250) NOT NULL)';
     form1.Query.ExecSQL;
     end;
end;
в чем ошибка?
boshki вне форума Ответить с цитированием
Старый 02.06.2011, 14:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как минимум использование ключевых слов в качестве имён полей.
например,
group - ключевое слово
да я бы и level по другому назвал. от греха подальше...

p.s. кроме того, запомните. если Вы создали объект через .Create,
так не забудьте освободить занимаемую им память через .Free
(а ещё лучше через FreeAndNil() )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2011, 14:15   #3
boshki
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 19
По умолчанию

названия полей изменил, но ошибка все равено осталась
зы вот скрин ошибки:
boshki вне форума Ответить с цитированием
Старый 02.06.2011, 15:29   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ладно. тогда давайте больше конкретики.
1) перед form1.Query.ExecSQL сделайте выдачу куда-нибудь (хоть в MessageBox, хоть в Memo) текста запроса
(например, так: Memo1.Lines.Text := form1.Query.SQL.Text; )

2) что за СУБД ?

3) через что идёт подключение? (form1.Query какого типа?) какая строчка коннекта и т.д...

4) с правами, с которыми подключается ваш Project1 - всё нормально? Их достаточно для создания таблицы?

5) полученная в пункте 1 строчка запроса в SQL окошке самой СУБД отрабатывается нормально, без ошибок?...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2011, 16:14   #5
boshki
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 19
По умолчанию

1) проверил, выводится без ошибок
2) MS Access 2007
3) TAdoQuery
Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=mydb.mdb;Persist Security Info=False
Query.Connection:=ADOConnection1
4) незнаю, ничего не менял нигде
5) Данное действие или событие заблокировано в режиме отключения
boshki вне форума Ответить с цитированием
Старый 02.06.2011, 16:35   #6
boshki
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 19
По умолчанию

Цитата:
Данное действие или событие заблокировано в режиме отключения
вроде бы нашел как его отключить, и в самой базе данных запрос работает, но потом access почему то снова переходит в этот режим, и еще замети база не закрывается, т.е. вот это: Microsoft Office Access Record-Locking Information (.ldb) после закрытия бд из папки никуда не исчезает
boshki вне форума Ответить с цитированием
Старый 02.06.2011, 18:36   #7
boshki
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 19
По умолчанию

отключил режим отключения на совсем, ноошибка все равно осталась
boshki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна одно table где все rows from table 1 но и еще добавленных table 2 Why Помощь студентам 0 20.09.2010 10:29
create MSSQL table from ClientDataset MAcK БД в Delphi 0 31.05.2010 23:52
Ошибка инструкции Insert tools SQL, базы данных 3 18.11.2009 21:32
Использование CREATE TABLE at0104 Microsoft Office Access 1 10.09.2009 18:24
Использование CREATE TABLE для Access at0104 БД в Delphi 0 10.09.2009 11:16