Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Вопрос про insert в access`e.   Найти похожие ветки 

 
vegarulez ©   (2007-11-28 08:28) [0]

Привет всем мастерам!
У меня возникла тут маленька проблемка. Работал с MySQL, и там запрос вида:
Insert into `test`(`id`,`text`) values ("","Hello World!")
проходил успешно, при том что `id` - auto increment...
так вот пытаюсь аналогично сделать в аксесе, но там он ни хочет воспринимать пустой id - ругается... Когда id не пустой а там какое нибудь значение - то запрос успешно выполняется добавля запись в таблицу...
Свойства поля id в аксесе:
Размер поля: Длинное целое
Новые значения:Последовательные
Индексированное поле: Да(Совпадения не допускаются)

Теперь вопрос: Как добавить новую запись в таблицу с id-ом, автоинкрементом предыдущего в бд?

(Не хочу каждый раз делать селект а max(id) перед тем как делать insert, есть наверно какие-то другие пути...)


 
Skyle ©   (2007-11-28 08:30) [1]

Просто Id не указывать вообще.
INSERT test (text) Values ("blabla")


 
vegarulez ©   (2007-11-28 08:40) [2]

Да, действительно запрос вида INSERT test (text) Values ("blabla"), прошёл успешно, всё получилось. Спасибо.

Я немного ошибся в первом посте я делаю запрос вот такого вида:
Insert into `test` values ("","Hello World!")
потому как у меня много полей и много значений, поэтому названия полей я выкинул, т.к. он ругается что типа длинна больше 255 и не хотел компилить прогу...

Тогда вопрос как сделать такой запрос:
Insert into `test` values ("","Hello World!")
при том что там теже поля... он при не указании поля id  говорит что типа кол-во полей и значений не совпадает...


 
Skyle ©   (2007-11-28 08:43) [3]

А что за ограничение 255?
Это в дельфи?
ShortString чтоли?


 
Anatoly Podgoretsky ©   (2007-11-28 08:51) [4]

> vegarulez  (28.11.2007 08:40:02)  [2]

> при не указании поля

Никогда так не делай.


 
vegarulez ©   (2007-11-28 08:52) [5]

Вопрос: Как запихнуть в стринг запрос более 255 символов...
в хелпе посмотрел стрнг :255 элементов
ансистринг и вайдстринг - то что надо...
но прописываю
var
s:Ansistring;

а он всё равно компилять не хотить  - выделяет то место где
s:= {дальше идёт длинный запрос} и говорит что типа стринг должен быть не больше 255 символов...
Подскажите... как быть...

[сечас в меня летят тухлые помидоры и яйца... ]


 
vegarulez ©   (2007-11-28 08:53) [6]

Anatoly Podgoretsky ©   (28.11.07 08:51) [4]

А почему нельзя так делать?
Я в мускле всегда так делал - всё норм было...


 
Anatoly Podgoretsky ©   (2007-11-28 08:57) [7]

> Skyle  (28.11.2007 08:43:03)  [3]

Не ShortString, просто автор не умеет работать с Дельфи, не понимает элементарных основ.


 
Skyle ©   (2007-11-28 09:05) [8]


> 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, просто автор не умеет работать с Дельфи,
>  не понимает элементарных основ.

Уже догадался :)


 
vegarulez ©   (2007-11-28 09:09) [9]

Anatoly Podgoretsky ©   (28.11.07 08:57) [7]

Подскажите где тогда посмотреть ответ на этот вопрос, раз он не был приведён в вашем посте...


 
sniknik ©   (2007-11-28 09:11) [10]

> s:= {дальше идёт длинный запрос} и говорит что типа стринг должен быть не больше 255 символов...
вот в этом и проблема, слишком длинные строки сама дельфя не обрабатывает.
что делать, имхо очевидно... сокращать запрос!  ;о). ну может и другое решение придумаешь, оно тоже элементарное.  

> Я в мускле всегда так делал - всё норм было...
прикинь, я в бассейне всегда плавал, и нормально было, а в пустыне почемуто не получается...

p.s. смотри синтаксис конкретного движка с которым работаешь. если ктото чтото дозволяет это не значит что у других точно также.


 
Johnmen ©   (2007-11-28 09:13) [11]

примерно так:
s :=
"я " +
"чайник, " +
"я " +
"чайник";


 
vegarulez ©   (2007-11-28 09:17) [12]

sniknik ©   (28.11.07 09:11) [10]
да... решение то я могу придумать тупо разбить длинный запрос на s1 и s2 а потом тупо
s:=s1+s2...
но хочется то по умному сделать...а  не так...
Поэтому и спрашиваю как?...


 
vegarulez ©   (2007-11-28 09:18) [13]

Johnmen ©   (28.11.07 09:13) [11]
спасибо за подсказку... я это знаю...


 
vegarulez ©   (2007-11-28 09:20) [14]

хотя наверно врядли можно чо нить придумать против компилятора делфи раз он так работает то нужно под него подстраиваться...
Лана всем спасибо. проблема решена. Тема закрыта.


 
Anatoly Podgoretsky ©   (2007-11-28 09:27) [15]

> vegarulez  (28.11.2007 08:52:05)  [5]

Разберись, что такое литералы, что такое конкатенация.


 
Anatoly Podgoretsky ©   (2007-11-28 09:28) [16]

> vegarulez  (28.11.2007 08:53:06)  [6]

Ты пришел в другую систему, думаешь в ней также плохо как в MySQL


 
Anatoly Podgoretsky ©   (2007-11-28 09:33) [17]


> спасибо за подсказку... я это знаю...

Странно, знаешь, но не делаешь, лучше горевать над сообщением об ошибке.

Назло маме уши отморожу.



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
1-1191498439
Kerk
2007-10-04 15:47
2007.12.23
Количество бит в байте


2-1195902105
ice321i
2007-11-24 14:01
2007.12.23
Аудит в InterBase 6.5


15-1195657961
oldman
2007-11-21 18:12
2007.12.23
Оказывается, вчера был Международный день ребенка


15-1196017801
Cyrax
2007-11-25 22:10
2007.12.23
JavaScript: "не выпускаем" пользователя из поля ввода, пока...


15-1195700635
Slider007
2007-11-22 06:03
2007.12.23
С днем рождения ! 22 ноября 2007 четверг