1 (edited by indigen 2016-06-22 20:45:59)

Topic: Вопрос по заполнению TextBox через SQLExecute

Доброго времени суток! Помогите с решением:
Проблема такова: есть в форме ComboBox, при выборе одного из значений мне нужно внести данные из таблицы БД в поле TextBox.

ДобавитьОборудование.price.Value:=SQLExecute('SELECT price FROM oborudovanie WHERE name=?значение?');

Собственно не могу понять как прописать часть WHERE чтобы выбиралась та строка таблицы oborudovanie, значение колонки name которой совпадает с выбранным значением combobox (выборка значений combobox производится из тех же значений поля name таблицы oborudovanie).

Re: Вопрос по заполнению TextBox через SQLExecute

Приветствую,


Попробуйте так:

ДобавитьОборудование.price.Value:=SQLExecute('SELECT price FROM oborudovanie WHERE id='+Form1.ComboBox1.sqlValue);
Dmitry.

3 (edited by indigen 2016-06-22 20:46:15)

Re: Вопрос по заполнению TextBox через SQLExecute

Спасибо, теперь не валится с ошибкой. Вот только проблема изменилась: возвращает 0, хотя цена прописана.

Re: Вопрос по заполнению TextBox через SQLExecute

indigen wrote:

Спасибо, теперь не валится с ошибкой. Вот только проблема изменилась: возвращает 0, хотя цена прописана.
Макет проекта в шапку добавил (если вдруг понадобится)

Вы забыли name заменить на id

попробуйте так

ДобавитьОборудование.price.Value:=SQLExecute('SELECT price FROM oborudovanie WHERE id='+ДобавитьОборудование.naimenovanie.sqlValue);
Dmitry.

Re: Вопрос по заполнению TextBox через SQLExecute

Дмитрий, проблема решена, смог разобраться. Спасибо за помощь.

6 (edited by indigen 2016-06-25 13:08:03)

Re: Вопрос по заполнению TextBox через SQLExecute

Дмитрий, вопрос по той же теме дальше.
Код:

itemunitid:=SQLExecute('SELECT id_units FROM oborudovanie WHERE id='+ДобавитьОборудование.naimenovanie.sqlValue);
   ДобавитьОборудование.itemunit.Value:=SQLExecute('SELECT name FROM units WHERE id='+VarToStr(itemunitid));

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

А задача проста, нужно вытащить наименование единицы измерения из таблицы units по идентификатору в таблице oborudovanie. Есть ли вариант решения проще?

И еще момент, при попытке удаления строки из таблицы находящейся Акты>1-вкладка оборудование или услуги вылетает ошибка и строка не удаляется. Проект приложил без ехе (не влез). Это косяк моего железа/рук или ошибка программы?

Re: Вопрос по заполнению TextBox через SQLExecute

Попробуйте строку

ДобавитьОборудование.itemunit.Value:=SQLExecute('SELECT name FROM units WHERE id='+VarToStr(itemunitid));

заменить на

ДобавитьОборудование.itemunit.Text:=SQLExecute('SELECT name FROM units WHERE id='+VarToStr(itemunitid));

И еще момент, при попытке удаления строки из таблицы находящейся Акты>1-вкладка оборудование или услуги вылетает ошибка и строка не удаляется. Проект приложил без ехе (не влез). Это косяк моего железа/рук или ошибка программы?

В настройках кнопки удаления не указан компонент TableGrid, т.е. кнопка не знает, откуда удалять.

Dmitry.

8 (edited by indigen 2016-06-25 17:31:31)

Re: Вопрос по заполнению TextBox через SQLExecute

Спасибо, все работает!

Re: Вопрос по заполнению TextBox через SQLExecute

А как сделать наоборот из Textbox - передать значение в combobox>?