|
Тема |
CBuilder/Delphi && Interbase |
|
Автор | Stefan (Нерегистриран) | |
Публикувано | 12.02.04 09:31 |
|
|
Здравейте,
Сблъсках се с проблем, който се дължи най-вече на таова,че съм начинаещ.
Работя със CBuilder/Interbase. Решавам задачка,която изглежда накратко така;
( Коментирам повърхностно кода)
1. Отваря се една таблица - ( TIBTable *tbl с много записи. - О'к )
2. Искам да работя отелно, с някакъв рекордсет от друга таблица по ключ от първата. За целта избрах - TIBDataSet *ds със един SELECT ..... който нормално
ми извади записите от втората таблица. Тях ги набутва в един DBGrid. Избрах
TIBDataSet защото пише че добре работи с dataware компоненти и е LIVE рекордсет.
3. Описах си и другите query за тази компонента.
ds->InsertSQL - INSERT INTO .......
ds->DeleteSQL - DELETE FROM .......
ds->ModifySQL - UPDATE .........
ds->RefreshSQL - SELECT .......
Добре де! Как става тогава обръщението към определено query, според това каква
операция извършвам? Понеже "бързата кучка...", бях си създал убеждение, че ако вмъквам запис примерно:
ds->Insert()
TIBDataSet автоматически ще ми приеме параметрите които назначавам, за такива
към InsertSQL и ще "execut"-ва query-то в InsertSQL. Или пък ако променям данни
чрез dataaware компонент от сорта на TDBedit или TDBcheckBox или нещо такова,
ще има методика за автоматично обръщение към ds->ModifySQL.
Да .... ама не !!!
Моля Ви, да ми спестите излишно лутане, като ми кажете каво не съм видял,
или пък неправилно подходил. А може би избора ми е неправилен.
В кръга на глупостта направих селдното, при вмъкване на запис
ds->SelectSQL=ds->InsertSQL;
ds->Params->ByName(.....)->AsString=......... ;
ds->Prepare();
ds->Open() или ds->ExexSQL(); ( Тъпия метод ExecSQL() не приема аргументи ? )
и всичко мина добре ! (Ха-ха). Но това ми се види дивотия. Ще трябва да прихващам
всяка промяна в TDBxxxxxxx компоненти и да пиша щуротии. Мога да направя и
други неща , ама ще бъда блъскане слепешката.
Мола Ви,дайте малко светлина...
10x
|
| |
|
|
|