Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.01.2013, 17:15
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию DBLookupComboBox1.KeyValue запись в базу

Доброго времени суток, уважаемые!
Пытаюсь запросом записать значения полей и DBLookupComboBox1.KeyValue
выдает ошибку: Invalid variant type cast

Вот таким вот способом:
Код:
1
2
3
4
SQLQuery.Close;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add('INSERT INTO `Passwords`.`Pass` (`IDObject`, `login`, `Pass`, `Comment`) VALUES ('+DBLookupComboBox1.KeyValue+','+DBLookupComboBox2.KeyValue+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')');
SQLQuery.ExecSQL;
Ответить с цитированием
  #2  
Старый 23.01.2013, 17:19
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Не может видимо провести приобразование типов. Приводи к строке вручную.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 23.01.2013, 17:45
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

мне показалось или у тебя 4 поля
Код:
1
(`IDObject`, `login`, `Pass`, `Comment`)
и 5 параметров
Код:
1
('+DBLookupComboBox1.KeyValue+','+DBLookupComboBox2.KeyValue+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')
?
зы. и да, используй параметры в запросе - меньше головняка будет
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
vladimirse (23.01.2013)
  #4  
Старый 23.01.2013, 17:50
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Не может видимо провести приобразование типов. Приводи к строке вручную.

Подскажите пожалуйста, как можно преобразовать неизвестный тип в строку?
Ответить с цитированием
  #5  
Старый 23.01.2013, 17:50
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
мне показалось или у тебя 4 поля
Код:
1
(`IDObject`, `login`, `Pass`, `Comment`)
и 5 параметров
Код:
1
('+DBLookupComboBox1.KeyValue+','+DBLookupComboBox2.KeyValue+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')
?
зы. и да, используй параметры в запросе - меньше головняка будет

Точно!!! Вот я баклан )))

Но ошибка все равно осталась

Помогло:
Код:
1
2
3
4
5
6
7
8
9
var
  s: string;
begin
   s:=IntToStr(DBLookupComboBox1.KeyValue);
   SQLQuery6.Close;
   SQLQuery6.SQL.Clear;
   SQLQuery6.SQL.Add('INSERT INTO `Passwords`.`Pass` (`IDObject`, `login`, `Pass`, `Comment`) VALUES ('+s+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')');
   SQLQuery6.ExecSQL;
end;

Последний раз редактировалось vladimirse, 23.01.2013 в 18:08.
Ответить с цитированием
  #6  
Старый 27.01.2013, 23:50
Machine Machine вне форума
Прохожий
 
Регистрация: 27.01.2013
Сообщения: 1
Репутация: 10
По умолчанию

Цитата:
Сообщение от vladimirse
Точно!!! Вот я баклан )))

Но ошибка все равно осталась

Помогло:
Код:
1
2
3
4
5
6
7
8
9
var
  s: string;
begin
   s:=IntToStr(DBLookupComboBox1.KeyValue);
   SQLQuery6.Close;
   SQLQuery6.SQL.Clear;
   SQLQuery6.SQL.Add('INSERT INTO `Passwords`.`Pass` (`IDObject`, `login`, `Pass`, `Comment`) VALUES ('+s+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')');
   SQLQuery6.ExecSQL;
end;
Как-то вы все усложняете. Легче было бы сделать вместо:

Код:
1
VALUES ('+s+','+Edit1.Text+','+Edit2.Text+','+Edit3.Text+');
Так:
Код:
1
2
3
4
5
6
7
8
9
VALUES (:s, :text1, :text2, :text3);
SQLQuery6.Params[0].DataType:=ftFixedChar;
SQLQuery6.Params[0].Value:=s;
SQLQuery6.Params[1].DataType:=ftFixedChar;
SQLQuery6.Params[1].Value:=Edit1.Text;
SQLQuery6.Params[2].DataType:=ftFixedChar;
SQLQuery6.Params[2].Value:=Edit2.Text;
SQLQuery6.Params[3].DataType:=ftFixedChar;
SQLQuery6.Params[3].Value:=Edit3.Text;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025