Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про 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')


Наверх

Титульная страница Поиск, карта сайта Написать письмо