Статья: Оптимизация приложений С++Builder в архитектуре клиент/сервер

{

Table1->Edit();

Table1PUR_PRICE->Value=Table1PUR_PRICE->Value+10;

Table1->Next();

}

DataSource1->Enabled=true; //Посмотрим, чтополучилось...

}

Временное отключение связи между DataSource1 и Table1 в данном обработчике событий сделано для того, чтобы исключить перерисовку компонента DBGrid1 при изменении каждой записи.

Кнопка Use SQL реализует выполнение одиночного SQL-запроса UPDATE HOLDINGS SET PUR_PRICE=PUR_PRICE+10:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Query1->Prepare();

Query1->ExecSQL();

Table1->Refresh(); //Посмотримнарезультат...

}

Скомпилировав приложение, запустим SQL Monitor и посмотрим, какие запросы генерируются BDE при нажатии на эти кнопки.

При использовании кнопки Update records log-файл имеет следующий вид:

14:37:08 SQL Prepare: ORACLE - UPDATE "HOLDINGS" SET "PUR_PRICE"=:1 WHERE "ROWID"=:2

14:37:08 SQL Execute: ORACLE - UPDATE "HOLDINGS" SET "PUR_PRICE"=:1 WHERE "ROWID"=:2

14:37:08 SQL Stmt: ORACLE - Close

14:37:08 SQL Prepare: ORACLE - SELECT "ACCT_NBR" ,"SYMBOL" ,"SHARES" ,"PUR_PRICE" ,"PUR_DATE" ,"ROWID" FROM "HOLDINGS" WHERE "ACCT_NBR"=:1

14:37:08 SQL Execute: ORACLE - SELECT "ACCT_NBR" ,"SYMBOL" ,"SHARES" ,"PUR_PRICE" ,"PUR_DATE" ,"ROWID" FROM "HOLDINGS" WHERE "ACCT_NBR"=:1

14:37:08 SQL Misc: ORACLE - Set rowset size

14:37:08 SQL Stmt: ORACLE - Fetch

14:37:08 SQL Stmt: ORACLE - EOF

14:37:08 SQL Stmt: ORACLE - Close

14:37:08 SQL Prepare: ORACLE - UPDATE "HOLDINGS" SET "PUR_PRICE"=:1 WHERE "ROWID"=:2

И так далее, пока не кончатся все записи:

14:37:10 SQL Prepare: ORACLE - SELECT "ACCT_NBR" ,"SYMBOL" ,"SHARES" ,"PUR_PRICE" ,"PUR_DATE" ,"ROWID" FROM "HOLDINGS" WHERE "ACCT_NBR"=:1

К-во Просмотров: 246
Бесплатно скачать Статья: Оптимизация приложений С++Builder в архитектуре клиент/сервер