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

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

запятая в строке в операторе insert


9899100 ©   (2008-02-06 12:02:00) 

для заполнения таблицы под FB формирую запрос примерно такого содержания:
insert into table1 (id,name) values(1,'Вася,Петя,Вова')
но строка 'Вася,Петя,Вова' вызывает ошибку
как правильно сформировать такой запрос?
запятые в строке нужны по смылсу и их не заменить на пробелы или другие символы


Desdechado   (2008-02-06 17:17:00) [1]

> у него вряд ли возникнет мысль выбрать дефолтную кодировку ISOчего-то-там
Зато ANSI или none выбирают сплошь и рядом.

> если машина не заводится - протри лобовое стекло!
Обратись в форум, там дистанционно помогут завести машину. И провода по почте припаяют. И аккумулятор зарядят. И шины подкачают.


DrPass   (2008-02-06 16:42:00) [2]


> Не обязятельно WIN1251..Почему так категорично? Мы не знаем,
>  с какой кодовой страницей создавалась БД

Наиболее вероятный вариант. Когда русскоговорящий новичок создает базу данных, у него вряд ли возникнет мысль выбрать дефолтную кодировку ISOчего-то-там


Виталий Панасенко   (2008-02-06 16:17:00) [3]


> DrPass ©   (06.02.08 15:17) [10]
>
> > Плохиш ©   (06.02.08 12:21) [3]
> >
> > > арифметическое переполнение или деление н ноль :(
> >
> > Чушь, какая-то.
>
> Не чушь, а отсутствие параметра lc_ctype=win1251 в параметрах
> соединения

Не обязятельно WIN1251..Почему так категорично? Мы не знаем, с какой кодовой страницей создавалась БД


sniknik   (2008-02-06 15:28:00) [4]

DrPass ©   (06.02.08 15:19) [12]
зато, когда машина в конце концов всетаки заведется, она выедет на трассу чистой! ;)


DrPass   (2008-02-06 15:19:00) [5]


> Хотел бы - понял бы.
> Еще раз повторяю - ПАРАМЕТРЫ

Еще раз повторяю, если машина не заводится - протри лобовое стекло! А если и после этого не будет заводиться, тогда проверь наличие бензина в баке и аккумулятор ;-)


DrPass   (2008-02-06 15:17:00) [6]


> Плохиш ©   (06.02.08 12:21) [3]
>
> > арифметическое переполнение или деление н ноль :(
>
> Чушь, какая-то.

Не чушь, а отсутствие параметра lc_ctype=win1251 в параметрах соединения


Desdechado   (2008-02-06 15:17:00) [7]

> причем тут папины калоши я чессно непонял,
Хотел бы - понял бы.
Еще раз повторяю - ПАРАМЕТРЫ.
q.SQL.text:='insert into table1 (id,name) values(1,:P0)';
q.Params[0].AsString:='Вася,Петя,Вова';
q.ExecQuery;

А вот если и с ними продолжит ругаться, то длина поля или кодировка БД/подключения виноваты, как уже говорилось.


Johnmen   (2008-02-06 13:59:00) [8]


> запрос примерно такого содержания:

Вспомнилось:
- Доктор, у меня что-то болит.
- Хорошо, я дам вам какую-нибудь таблетку.
(с)


sniknik   (2008-02-06 12:42:00) [9]

> Оракл точно так же ругается :)
а аксесс ->
EOleException : Размер поля недостаточен, чтобы принять добавляемые данные.  Попробуйте вставить меньшее количество данных


sniknik   (2008-02-06 12:40:00) [10]

> попробуй :) вызовет
попробовал, не вызвало. я тоже в шоке... как же так сказали, что вызовет... ?


ANB   (2008-02-06 12:39:00) [11]


> но вылетает явно из за этих запятых

Убирать их пробовал ? Кистате, у тебя длинна поля Наме надеюсь байт 300 хотя бы ?

> во-во, я тоже в шоке :)
> причем тут арифметическое переполнение .....

Оракл точно так же ругается :)


Виталий Панасенко   (2008-02-06 12:38:00) [12]

Там еще есть продолжение ошибки, которое не приведено.. На счет того, что кодовая страница БД не совпадает с кодовой странице текста 'Вася,Петя,Вова'


9899100   (2008-02-06 12:23:00) [13]


> Чушь, какая-то.

во-во, я тоже в шоке :)
причем тут арифметическое переполнение .....


Плохиш   (2008-02-06 12:21:00) [14]


> арифметическое переполнение или деление н ноль :(

Чушь, какая-то.


9899100   (2008-02-06 12:14:00) [15]


> Такой запрос ошибки не вызывает.


q.SQL.text:='insert into table1 (id,name) values(1,'+''''+'Вася,Петя,Вова'+''''+')';
q.ExecQuery;

попробуй :) вызовет
арифметическое переполнение или деление н ноль :(
причем тут папины калоши я чессно непонял, но вылетает явно из за этих запятых


Desdechado   (2008-02-06 12:08:00) [16]

> запрос примернотакого содержания
Такой запрос ошибки не вызывает.

Используй параметры, и не будет проблем.


Наверх

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