Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2010, 17:55   #1
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию DBLookupCombobox

База на SQL. Добавляю успешно данные в таблицу из Edit'ов. А с добавлением из DBLookupCombox сложности. Данные добавляются в таблицу, а в приложении выскакивает вот такая ошибка:

И открыв приложение эта ошибка выскакивает до тех пор пока я вручную из базы не удалю добавленные данные.
Вот код добавления:
Код:
with DataModule2 do
  begin
    ADOQueryZayavkaAdd.Close;
    ADOQueryZayavkaAdd.SQL.Clear;
    ADOQueryZayavkaAdd.SQL.Add('insert into Zayavka (FK_StatusZayavki) values (:ParamStatusZayavki)');
    ADOQueryZayavkaAdd.Parameters.ParamByName('ParamStatusZayavki').Value:=DBLookupComboBox1.KeyValue;
    ADOQueryZayavkaAdd.ExecSQL;
  end;
Хелп форумчане
Explosion вне форума Ответить с цитированием
Старый 15.04.2010, 18:19   #2
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

а данные в DBLookupCombobox берутся из той же таблицы в которую добавляешь?
и меня немного смущает вот эта строка:
Код:
ADOQueryZayavkaAdd.Parameters.ParamByName('ParamStatusZayavki').Value:=DBLookupComboBox1.KeyValue;
получается у тебя DBLookupComboBox1 тож в DataModule2
Тяжело быть бестолковым.....

Последний раз редактировалось Dark_Spirit; 15.04.2010 в 18:23.
Dark_Spirit вне форума Ответить с цитированием
Старый 15.04.2010, 18:46   #3
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
а данные в DBLookupCombobox берутся из той же таблицы в которую добавляешь?
Данные берутся из другой таблицы, таблицы-справочника.

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
и меня немного смущает вот эта строка:
Код:
ADOQueryZayavkaAdd.Parameters.ParamByName('ParamStatusZayavki').Value:=DBLookupComboBox1.KeyValue;
получается у тебя DBLookupComboBox1 тож в DataModule2
ДБлукапКомбоБокс находится на форме. Я сча попробую исправить, но тоже самое только с Edit.Text вместо DBLookupComboBox1.KeyValue работает...
Explosion вне форума Ответить с цитированием
Старый 15.04.2010, 18:57   #4
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию

Проверил, не получается 8( На всякий случай скажу, что поле, куда добавляем значение из DBLookupComboBox1.KeyValue, типа Integer.

Последний раз редактировалось Explosion; 15.04.2010 в 19:15.
Explosion вне форума Ответить с цитированием
Старый 15.04.2010, 19:05   #5
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

а если попробовать так:
Код:
with DataModule2 do
  begin
    ADOQueryZayavkaAdd.Close;
    ADOQueryZayavkaAdd.SQL.Clear;
    ADOQueryZayavkaAdd.SQL.text:='insert into Zayavka (FK_StatusZayavki) values ('+inttostr(form1.DBLookupComboBox1.KeyValue)+')'; 
    ADOQueryZayavkaAdd.ExecSQL;
  end;
Тяжело быть бестолковым.....

Последний раз редактировалось Dark_Spirit; 15.04.2010 в 19:10.
Dark_Spirit вне форума Ответить с цитированием
Старый 15.04.2010, 19:16   #6
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию

Эх, попробовал, вывалилась та же самая ошибка =[
И еще на всякий случай скажу в свойстве DBLookupCombobox List Source стоит датасурс таблицы-справочника, в Key Field ключевое поле таблицы-справочника, в List Field выбрано нужное поле этой же таблицы-справочника.
Ну и еще раз повторюсь в таблицу он записывает данные и даже когда открываешь делфи в дб гриде эти данные отображаются, а вот если делфи запустить на F9, то он будет выдавать эту ошибку пока вручную не сотрешь из таблицы все данные из поля.
Explosion вне форума Ответить с цитированием
Старый 15.04.2010, 19:19   #7
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

[quoted]
а вот если делфи запустить на F9, то он будет выдавать эту ошибку пока вручную не сотрешь из таблицы все данные из поля.
[/quoted]
и если ехе-шник запустиь то же самое?

было бы не плохо посмотреть сам проэкт...
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 15.04.2010, 19:35   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

слушай, а таблица Zayavka, сколько имеет полей, одно?
елси нет, тогда тебе нужно добавлять значения всех полей, а не одного, а если хочешь изменить значение поля FK_StatusZayavki какой-то определённой записи нужно использовать UPDATE:
Код:
update Zayavka
 set FK_StatusZayavki=<значение>
 where <например_поле_номер_заявки>=<номер_заявки_которую_нужно_изменить>
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 15.04.2010, 19:41   #9
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию

Ха! А через EXEшник не ругается!

В таблице Zayavka много полей это у меня главная таблица! Наверно в этом причина! Вы правы. Но у меня просто для всех полей в этой таблицы кроме ключевого допускаются пустые значения (я поэтому решил что ругаться не должно, да и то что делфи не запускается смущало...).
Мне именно добавить нужно, но насчет апдейта и изменений запомню.

Спасибо огромнейшее Dark_Spirit за помощь! Я еще сюда писать буду...
Explosion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBLookupComboBox SunKnight Компоненты Delphi 6 25.02.2012 08:55
DBLOOKUPCOmbobox!!! pr0b3l Компоненты Delphi 1 02.06.2009 04:51
DBLookupComboBox Sergius X БД в Delphi 6 08.05.2009 17:08
DBLookupComboBox andirock2112 БД в Delphi 4 22.04.2009 14:40
DBLookupCombobox??? Alexcandr Компоненты Delphi 2 05.04.2007 16:46