
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.01.2005, 12:43:06
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
Проблема у меня следующая. Есть таблицы Addind, и Doc В Adding может быть, а может и не быть записи с ключом Key=10 Мне надо добавить из Doc в Adding запись с ключом Key=10 если в Adding этой записи небыло раньше, а если была просто изменить. Можно так Сначала TheConn.Execute ("DELETE Adding.*, Adding.KodDoc From Adding WHERE (((Adding.Key)=10") Потом TheConn.Execute ("INSERT INTO Adding ... Работает но некрасиво, долго, и т.д. Скорее всего все сводится к следующему: мне надо определить есть ли в Adding записть с Key=10, а потом уже решать что делать INSERT INTO Adding ... или UPDATE Adding ... Вопрос в том как это сделать правильно, и чтобы работало быстро? Т.е. классически. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.01.2005, 13:31:41
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
Нечто в этом роде Код: plaintext 1. 2. 3. Можно также воспользоваться фильтром. Либо запихнуть все в хранимку с параметром ключа. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2005, 19:22:01
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
Когда задавал вопрос то упростил для key=10, на самом деле надо было добавить все несуществующие записи из Doc в Adding для любых Key (Как спросишь так и ответят) Сделал так: SELECT Doc.KodN, Doc.NameN, Doc.Summa FROM Doc LEFT JOIN Adding ON Doc.Key = Adding.Key WHERE (((Adding.Key) Is Null)); потом весть этот SELECT добавил в Adding. Большое спасибо за консультации. P.S. Теперь, по моему можно смело делать UPDATE Adding, записи не потеряются. А как правильно определить пустой ли RecordSet rs.open ("SELECT Doc.KodN, Doc.NameN, Doc.Summa FROM Doc LEFT JOIN Adding ON Doc.Key = Adding.Key WHERE (((Adding.Key) Is Null))") ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2005, 04:24:39
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
if rs.count = 0 ... значит запрос записей не вернул. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2005, 13:57:46
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
1. не всякий рекордсет можно сосчитать 2. rs.eof and rs.bof значительно быстрее, чем rs.count = 0, особенно если rs не пустой ------------------ Best regards, _bob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2005, 14:56:45
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
Конечно не всякий, от типа курсора зависит. Инфы о типе и расположении курсора не было, поэтому угадывать я не буду. А разница в скорости - миллисекунды, весьма незначительно. Если уж бороться за них то делать это все нужно в хранимке. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2005, 15:49:32
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
не надо ля-ля, время выполнения .count линейно зависит от числа записей в рекордсете и может составлять десятки секунд на очень быстрой машине, а время .bof and .eof - от числа записей не зависит ------------------ Best regards, _bob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2005, 16:10:17
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
_bobне надо ля-ля, время выполнения .count линейно зависит от числа записей в рекордсете и может составлять десятки секунд на очень быстрой машине, а время .bof and .eof - от числа записей не зависит ------------------ Best regards, _bob Десятки секунд буду только в случае сотен тысяч записей, такого времени я еще в жизни не встречал. Это будет означать только кривой дизайн. RеcordCount - свойство. Т.е. если рекордсет уже на клиенте, то он уже посчитан и возврат свойства занимает миллисекунды. Время может увеличиваться если большой рекордсет не был полностью вытащен, в этом случае для подсчет нужен полный фетч. Задержка идет на открытии а не на подсчете. Но, для проверки на ПУСТОЙ рекордсет конечно нужно использовать EOF и BOF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2005, 17:34:57
|
|||
|---|---|---|---|
Пустой RecordSet |
|||
|
#18+
На связанном рекордсете может и будет сравнимо с десятками секунд, особенно когда полей штук 50 и записей тысяч 300, а отображет его грид на весь экран 1600x1280. на его свободном клоне это время на два порядка меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&tablet=1&tid=2168339]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 366ms |

| 0 / 0 |
