Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с добавлением в Interbase 
:(
    Опции темы
ShamanVoodoo
Дата 31.3.2008, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



Есть вот такой код:
Код

 SQLQuery1.Close;
 SQLQuery1.SQL.Clear;
 SQLQuery1.SQL.Add('INSERT INTO TERMIN (NAME_TERM,MIN_TERM,MAX_TERM)VALUES(:tname,:tmin,:tmax)');
 SQLQuery1.Params[0].Name:='tname';
 SQLQuery1.Params[1].Name:='tmin';
 SQLQuery1.Params[2].Name:='tmax';
 SQLQuery1.Params[0].AsString:=Edit1.Text;
 SQLQuery1.Params[1].AsFloat:=strtofloat(Edit2.Text);
 SQLQuery1.Params[2].AsFloat:=strtofloat(Edit3.Text);
 SQLQuery1.ExecSQL;


проблема в том, что при вводе русского текста в Edit1.Text возникает ошибка(при вводе англоязычного текста все ок):
http://ipicture.ru/uploads/080331/6BcANd4dIW.gif

InterBase 6.5 \ Кодировка Win1251 \ SQL DIALECT 3
Код

CREATE TABLE TERMIN (
    ID_TERM    INTEGER NOT NULL,
    MIN_TERM   DECIMAL(15,2),
    MAX_TERM   DECIMAL(15,2),
    NAME_TERM  VARCHAR(100)
);

PM MAIL ICQ   Вверх
ShamanVoodoo
Дата 31.3.2008, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



 smile  сам разобрался, ну может у кого та же проблема возникнет...
В общем надо в параметрах SQLConnection задать ServerCharSet=WIN1251
PM MAIL ICQ   Вверх
Akella
Дата 31.3.2008, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



а разве нельзя заменить это всё:
Код

 SQLQuery1.Params[0].Name:='tname';
 SQLQuery1.Params[1].Name:='tmin';
 SQLQuery1.Params[2].Name:='tmax';
 SQLQuery1.Params[0].AsString:=Edit1.Text;
 SQLQuery1.Params[1].AsFloat:=strtofloat(Edit2.Text);
 SQLQuery1.Params[2].AsFloat:=strtofloat(Edit3.Text);


на
Код

 SQLQuery1.Params[0].Value:=Edit1.Text;
 SQLQuery1.Params[1].Value:=strtofloat(Edit2.Text);
 SQLQuery1.Params[2].Value:=strtofloat(Edit3.Text);

PM MAIL   Вверх
ShamanVoodoo
Дата 31.3.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



а как потом их в текст запроса вносить? :0, :1, :2?
PM MAIL ICQ   Вверх
Rodman
Дата 31.3.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



они уже у тебя в запросе должны быть написаны!
а по номеру к ним обращаешься!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Akella
Дата 1.4.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(ShamanVoodoo @  31.3.2008,  13:43 Найти цитируемый пост)
а как потом их в текст запроса вносить? :0, :1, :2? 


Цитата(Rodman @  31.3.2008,  14:20 Найти цитируемый пост)
они уже у тебя в запросе должны быть написаны!

почему должны? уже ж ведь написаны:

Цитата(ShamanVoodoo @  31.3.2008,  06:49 Найти цитируемый пост)
SQLQuery1.SQL.Add('INSERT INTO TERMIN (NAME_TERM,MIN_TERM,MAX_TERM)VALUES(:tname,:tmin,:tmax)');


PM MAIL   Вверх
Fighter
Дата 2.4.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Я не знаю, мож при работе с Interbase свои причуды, но если я пишу что-то наподобие:
Код

select * from my_Table
where id_my_Table = idmt


То, в данном случае idmt - Это будет параметр. Т.е. нужно просто написать незнакомый идентификатор. 
PM MAIL   Вверх
Zmitro
Дата 3.4.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 19.3.2008

Репутация: 1
Всего: 1



Цитата(Fighter @ 2.4.2008,  17:30)
Я не знаю, мож при работе с Interbase свои причуды, но если я пишу что-то наподобие:
Код

select * from my_Table
where id_my_Table = idmt


То, в данном случае idmt - Это будет параметр. Т.е. нужно просто написать незнакомый идентификатор.

where id_my_Table = :idmt
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.