|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка при создании таблицы программно
У меня такая проблемка: Не могу создать программно таблицу в MySQl 5.0.
Код:
DataModul.DataModule2.ADOCommand1.CommandText:='CREATE TABLE '' '+imtab+' ''(''ima'' integer, ''adr'' CHAR(255))'; DataModul.DataModule2.ADOCommand1.Execute; Самое интересное чтобы добавить строку или поставить условие, то можно использовать двойные кавычки. Т.О. программно у меня не выходит создать таблицу, помогите пожалуйста.. |
#2
|
|||
|
|||
Напиши как команда должна быть, мы тебе напишем как такую строку собрать в дельфи...
|
#3
|
|||
|
|||
Код:
CREATE TABLE 'imtab'('ima' integer, 'adr' CHAR(120)) Примерно такой SQL запрос к MySQL должен быть, заранее спасибо. |
#4
|
|||
|
|||
Код:
s := Format('CREATE TABLE ''%s'' (''%s'' integer, ''%s'' char(120))',['imtab','ima','adr']); Посление параметры в [] - то, что будет подставленно в строку на место %s |
#5
|
|||
|
|||
Спасибо за помощь. Я сделал так:
Код:
procedure TForm2.Button1Click(Sender: TObject); var s:string; begin s:=Format('CREATE TABLE ''%s''(''%s'' CHAR(20), ''%s'' CHAR(120))',['imtab','ima','adr']); ADOCommand1.CommandText:=s; ADOCommand1.Execute; end; Последний раз редактировалось Gman, 09.08.2010 в 07:39. |
#6
|
|||
|
|||
''%s'' - я так понимаю 4 одинарные кавычки здесь используются
Последний раз редактировалось Gman, 09.08.2010 в 07:45. |
#7
|
|||
|
|||
Да. Именно 4 апострофа.
Скорее всего в самом запросе кавычки не нужны. Вообще странно, что требуются какие-то кавычки для создания таблицы. Стандарт никаких кавычек не предусматривает, а MySQL соответствует стандарту. Попробуй все-таки вот так: Код:
s:=Format('CREATE TABLE %s(%s CHAR(20), %s CHAR(120))',['imtab','ima','adr']); |
#8
|
|||
|
|||
Спасибо!, теперь работает.
Впринципи я тоже нашёл способ, если кому надо: Код:
ADOCommand1.CommandText:='CREATE TABLE `imtab` ( `ima` CHAR(10), `adr` CHAR(10))' По поводу стандарта SQL, вы правы он таких штук не предусматривает, я думаю возможно проблема связанна в версией MySQl. Последний раз редактировалось Gman, 09.08.2010 в 09:59. |
#9
|
||||
|
||||
Для справки:
1. Названия полей, таблиц и баз данных в MySQL ограничиваются обратными апострофами (`). 2. Все значения полей (кроме числовых) в MySQL ограничиваются апострофами ('), либо кавычками (") (в последних версиях вроде кавычки не поддерживаются). Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |