|
|
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Нужно осуществить некие действия если запись есть. Пишу запрос: DataModule1->IBDataSet1->SelectSQL->Add("select * from DOCUMENTS where EDOCNAME='"+ExtractFileName(FileName)+"'"); Как мне узнать программно, найдена запись или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 12:30 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
То, чты записал, мало. Нужно еще выполнить запрос, вызвав метод твоего DataSet -> Open Если что-то есть, то свойство RecordCount будет <> 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 12:34 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
property RecordCount: Integer; Description Examine RecordCount to determine the number of records that the dataset has currently retrieved from the server. As the dataset fetches records from the server, the value of RecordCount increases. After a call to the FetchAll method, RecordCount is the total number of records in the dataset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 12:37 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
if(! DataModule1->IBDataSet1->SelectSQL->IsEmpty() ) так наверно будет правильнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 12:53 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
2 1man Дык я ж и говорю, сравнивать только с нулем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 12:57 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Спасибо. Зделал так, думаю нормально? DataModule1->IBDataSet1->Active = false; DataModule1->IBDataSet1->SelectSQL->Clear(); DataModule1->IBDataSet1->SelectSQL->Add("select * from DOCUMENTS where EDOCNAME='"+ExtractFileName(FileName)+"'"); DataModule1->IBDataSet1->Active = true; if(DataModule1->IBDataSet1->RecordCount ==0 ) { ShowMessage("Проверка закончена. \n Файл не зарегистрирован в данной программе."); } else { ShowMessage("Проверка закончена. \n Уч.карта зарегистрирована."); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 13:10 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Да вроде бы... На всяки посмотри внимательно, что-то с первой кавычкой сомнительное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 13:16 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Milk Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 13:16 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
FetchAll Ага, на здоровье. У него их там миллионов 5-6 (записей). После Open ВСЕГДА фетчится первая запись. Так что не напрягайся с FetchAll. Как бы хуже не вышло. Если есть сомнения, то делай select count(*) from ... Тогда всегда гарантия, что DataSet->field[0]->AsInteger всегда даст достоверный результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 13:23 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Чтот меня немного запутали. Кодами. авторDnico А что это за добавление? Нужно это? DataModule1->IBDataSet1->FetchAll; // !!! Без этого может не работать Тот код что я привел, работает. автор mv Так нужно добавлять или нет? буду же я каждый раз перепроверять, хотелось бы сразу нормально сделать. Тот код что я привел вышее.. вроде показывает правильно. Или бывают проблемы когда много записей? Я в догатках добавлять или нет "FetchAll" скажите?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 14:08 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
Работает, но я пару раз столкнулcя с Exception после проверки RecordCount!=0 причем у клиента, и понять причину не смог. Поставил IsEmpty() - больше проблемм на эту тему не имел. Причину не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 14:22 |
|
||
|
Как програмно узнать...... (С++В & IB)
|
|||
|---|---|---|---|
|
#18+
FethAll - это запрос к серверу, чтобы от отдал все записи из выборки. То-же самое в IB можно получить через Last(), в результате RecordCount, получит настоящее значение (сколько записей по выборке), а так - он дает только количество записей полученных после последней команды серверу Feth. Только, если записей оч. много, или запрос тяжелый, ждать придется долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2003, 14:30 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32360894&tid=1579460]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 464ms |

| 0 / 0 |
