|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Добавить значение из другой таблицы
Добрый день!
Перехожу с BDE на SQL и очень трудно в него вникаю... Подскажите пожалуйста, как можно написать в ячейку данные с другой таблицы. Т.е например есть таблица с базой посетителей. И есть отдельно талица городов. Нужно в таблицу с базой посетителей вставить ID Города из базы Городов. Вот начало кода: Код:
QPacient.SQL.Clear; QPacient.SQL.Add('INSERT INTO Pacient (FamPacient,NamePacient,OtchPac,DateR,IIN,Country,Oblast,City,Street,Dom,Kv,Dtel,Mtel) VALUES(:FamPacient, :NamePacient, :OtchPac, :DateR, :IIN, :Country, :Oblast, :City, :Street, :Dom, :Kv, :DTel, :MTel'); QPacient.Parameters.ParamByName('FamPacient').Value:=Fam.Text; QPacient.Parameters.ParamByName('NamePacient').Value:=Name.Text; QPacient.Parameters.ParamByName('OtchPac').Value:=Otch.Text; QPacient.Parameters.ParamByName('IIN').Value:=Name.Text; QPacient.Parameters.ParamByName('Country').Value:=.....? |
#2
|
|||
|
|||
Зависит от того что вы используете в качестве выбора города пользователем?
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#3
|
|||
|
|||
Компонент ComboBox
Вообще то еще не использую, но хочу использовать именно его. |
#4
|
|||
|
|||
я делал проще, (знаю что не красиво но проще). кидаешь еще один combobox делаешь его не видимым. в него грузишь ID (когда заполняешь комбобокс с городами) в onchange 1 го комбобокса пишешь:
Код:
ComboboxID.itemIndex:=ComboboxCityStr.ItemIndex; ну а в запросе уже подставляешь значение Код:
QPacient.Parameters.ParamByName('Country').Value:=StrToInt(ComboboxID.Text) Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#5
|
||||
|
||||
В общем все правильно вы делаете, не забудьте добавить в конце:
Код:
QPacient.ExecSQL; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
Цитата:
|
#7
|
|||
|
|||
Цитата:
И еще, как правильно на SQL-е считать данные в ComboBox? |
#8
|
|||
|
|||
Либо вариант более правильный написать хранимую процедуру для записи куда передается все те же переменные и город а в хранимой процедуре уже дергать ID из справочников.
по поводу увеличения какого либо существенного замедления быть не должно разве что только при загрузке программы. как вариант если хочешь оформи данную форму в DLL и соответственно она будет загружаться и выгружаться когда нужна-ненужна. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#9
|
|||
|
|||
А как на SQL-е правильно считать данные в ComboBox?
|
#10
|
|||
|
|||
Всмысле? вопрос не понял.
ты как комбобокс с городами заполняешь? Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#11
|
|||
|
|||
Вот жду, что бы добрые люди подсказали, как это правильно на SQL-е сделать...
|
#12
|
|||
|
|||
кидаешь кверик (ADOQuery1 например) в нем запрос :
Код:
Select CityID,CityStr from SprCity order by CityStr далее на onShow формы пишешь Код:
ADOQuery1.active:=true; comboboxCityID.clear; comboboxCityStr.clear; if not ADOQUERY1.isEmpty then begin ADOQUERY1.First; repeat comboboxCityID.items.add(Adoquery1.fieldbyname('CityID').asString; comboboxCityStr.items.add(Adoquery1.fieldbyname('CityStr').asString; ADOQUERY1.next; until ADOQUERY1.eof; comboboxCityID.itemindex:=0; comboboxCityStr.itemindex:=0; Adoquery1.active:=false; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#13
|
|||
|
|||
Сильно не пинайте ногами...
Если на форму есьт уже ADOQuery. Нужно ли кидать еще один? Или все можно через один и тот же Query делать? |
#14
|
|||
|
|||
можно и одним но не красиво
потому что если в нем у тебя запрос например который отображается в гриде, то будет фигня, а если ты прописал поля то вообще ошибка скорее всего будет вообщем можно и нужно. например для цели заполнения комбобоксов можешь хоть динамически создать. либо просто кинь на форму кверик например ТемпКвери и в нем меняй запросы которые не влияют в данный момент на отображении и логику приложения. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#15
|
|||
|
|||
Если можно - еще вопрос ADOConnection - один должен быть или можно несколько?
|