![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про insert в access`e. [D6, XP]
vegarulez © (2007-11-28 08:28:00)Привет всем мастерам!
У меня возникла тут маленька проблемка. Работал с MySQL, и там запрос вида:
Insert into `test`(`id`,`text`) values ("","Hello World!")
проходил успешно, при том что `id` - auto increment...
так вот пытаюсь аналогично сделать в аксесе, но там он ни хочет воспринимать пустой id - ругается... Когда id не пустой а там какое нибудь значение - то запрос успешно выполняется добавля запись в таблицу...
Свойства поля id в аксесе:
Размер поля: Длинное целое
Новые значения:Последовательные
Индексированное поле: Да(Совпадения не допускаются)
Теперь вопрос: Как добавить новую запись в таблицу с id-ом, автоинкрементом предыдущего в бд?
(Не хочу каждый раз делать селект а max(id) перед тем как делать insert, есть наверно какие-то другие пути...)
Anatoly Podgoretsky (2007-11-28 09:33:00) [1]
> спасибо за подсказку... я это знаю...
Странно, знаешь, но не делаешь, лучше горевать над сообщением об ошибке.
Назло маме уши отморожу.
Anatoly Podgoretsky (2007-11-28 09:28:00) [2]> vegarulez (28.11.2007 08:53:06) [6]
Ты пришел в другую систему, думаешь в ней также плохо как в MySQL
Anatoly Podgoretsky (2007-11-28 09:27:00) [3]> vegarulez (28.11.2007 08:52:05) [5]
Разберись, что такое литералы, что такое конкатенация.
vegarulez (2007-11-28 09:20:00) [4]хотя наверно врядли можно чо нить придумать против компилятора делфи раз он так работает то нужно под него подстраиваться...
Лана всем спасибо. проблема решена. Тема закрыта.
vegarulez (2007-11-28 09:18:00) [5]Johnmen © (28.11.07 09:13) [11]
спасибо за подсказку... я это знаю...
vegarulez (2007-11-28 09:17:00) [6]sniknik © (28.11.07 09:11) [10]
да... решение то я могу придумать тупо разбить длинный запрос на s1 и s2 а потом тупо
s:=s1+s2...
но хочется то по умному сделать...а не так...
Поэтому и спрашиваю как?...
Johnmen (2007-11-28 09:13:00) [7]примерно так:
s :=
'я ' +
'чайник, ' +
'я ' +
'чайник';
sniknik (2007-11-28 09:11:00) [8]> s:= {дальше идёт длинныйзапрос} и говорит что типа стринг должен быть не больше 255 символов...
вот в этом и проблема, слишком длинные строки сама дельфя не обрабатывает.
что делать, имхо очевидно... сокращать запрос! ;о). ну может и другое решение придумаешь, оно тоже элементарное.
> Я в мускле всегда так делал - всё норм было...
прикинь, я в бассейне всегда плавал, и нормально было, а в пустыне почемуто не получается...
p.s. смотри синтаксис конкретного движка с которым работаешь. если ктото чтото дозволяет это не значит что у других точно также.
vegarulez (2007-11-28 09:09:00) [9]Anatoly Podgoretsky © (28.11.07 08:57) [7]
Подскажите где тогда посмотреть ответ на этот вопрос, раз он не был приведён в вашем посте...
Skyle (2007-11-28 09:05:00) [10]
> vegarulez © (28.11.07 08:53) [6]
> Anatoly Podgoretsky © (28.11.07 08:51) [4]
>
> А почему нельзя так делать?
> Я в мускле всегда так делал - всё норм было...
Источник трудноуловимых ошибок.
> Anatoly Podgoretsky © (28.11.07 08:57) [7]
> > Skyle (28.11.2007 08:43:03) [3]
>
> Не ShortString, просто автор не умеет работать с Дельфи,
> не понимает элементарных основ.
Уже догадался :)
Anatoly Podgoretsky (2007-11-28 08:57:00) [11]> Skyle (28.11.2007 08:43:03) [3]
Не ShortString, просто автор не умеет работать с Дельфи, не понимает элементарных основ.
vegarulez (2007-11-28 08:53:00) [12]Anatoly Podgoretsky © (28.11.07 08:51) [4]
А почему нельзя так делать?
Я в мускле всегда так делал - всё норм было...
vegarulez (2007-11-28 08:52:00) [13]Вопрос: Как запихнуть в стринг запрос более 255 символов...
в хелпе посмотрел стрнг :255 элементов
ансистринг и вайдстринг - то что надо...
но прописываю
var
s:Ansistring;
а он всё равно компилять не хотить - выделяет то место где
s:= {дальше идёт длинный запрос} и говорит что типа стринг должен быть не больше 255 символов...
Подскажите... как быть...
[сечас в меня летят тухлые помидоры и яйца... ]
Anatoly Podgoretsky (2007-11-28 08:51:00) [14]> vegarulez (28.11.2007 08:40:02) [2]
> при не указании поля
Никогда так не делай.
Skyle (2007-11-28 08:43:00) [15]А что за ограничение 255?
Это в дельфи?
ShortString чтоли?
vegarulez (2007-11-28 08:40:00) [16]Да, действительно запрос вида INSERT test (text) Values ('blabla'), прошёл успешно, всё получилось. Спасибо.
Я немного ошибся в первом посте я делаю запрос вот такого вида:
Insert into `test` values ("","Hello World!")
потому как у меня много полей и много значений, поэтому названия полей я выкинул, т.к. он ругается что типа длинна больше 255 и не хотел компилить прогу...
Тогда вопрос как сделать такой запрос:
Insert into `test` values ("","Hello World!")
при том что там теже поля... он при не указании поля id говорит что типа кол-во полей и значений не совпадает...
Skyle (2007-11-28 08:30:00) [17]Просто Id не указывать вообще.
INSERT test (text) Values ('blabla')