|
|
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
Есть 2 таблицы: Inv, InvRow (счета и, соответственно строки счета) Связаны по полю ID Задача: добавление счетов из VBA Делаю примерно так: 1. rstInv.Open "SELECT Inv.* FROM Inv" rstInv.AddNew .... .... rstInv.Update ID_Inv = rstInv![ID] 2. rstInvRow.Open "SELECT InvRow.* FROM InvRow WHERE InvRow.ID = " & CStr(ID_Inv) rstInvRow.AddNew .... .... rstInvRow.Update Собственно вопрос: что можно сделать чтобы не тянуть всю таблицу в 1 пункте для добавления? Согласен, можно запросом на добавление, но как потом узнать ID ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 17:27 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
select ... where false ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 17:36 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
ну да или TOP 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 17:42 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
Не совсем понял куда приладить select ... where false И будет ли конструкция INSERT - запросом select ... where false - для вычисления ID работать быстрее ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 17:51 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
>Не совсем понял куда приладить select ... where false сюда приладить 1. rstInv.Open "SELECT Inv.* FROM Inv where false" проще говоря вытаскиваешь таблу без записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 18:12 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
А какая база mdb или adp? Система многопользовательская или однопользовательская? Могут ли в быть в таблице Inv записи без соответствующих записей в таблице InvRow Дальнейшие рекомендации зависят от ответов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2003, 18:22 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
2VIG: В данный момент ADP. Система, соответственно, многопользовательская. В принципе могут, но это ни к чему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 06:28 |
|
||
|
Оптимизация приложения
|
|||
|---|---|---|---|
|
#18+
2 Чумаков.А Забыл спросить. Поле ID_Inv в таблице Inv имеет тип IDENITY? Судя по коду-это так.Буду исходить из этого. Я бы сделал так 1.На сервере создать 2 хранимые процедуры для внесения данных в Inv, InvRow соответственно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Эта ХР возвращает значение id_inv после внесения данных в inv или 0 в случае ошибки. Код: plaintext 1. 2. 3. 4. 5. 6. 2.На клиенте : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. пп insert2InvRow создается аналогично Естественно в обе подпрограмы д.б вставлен код для обработки ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 09:36 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32215186&tid=1680376]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 420ms |

| 0 / 0 |
