|
Recordset для Insert
|
|||
---|---|---|---|
#18+
Вместо INSERT хочу использовать Recordset и мне нужно переделать код, если кто сможет помочь, буду благодарен. Код: vbnet 1. 2. 3. 4. 5.
Наброски кода: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 21:51 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
По записям надо пройтись циклом (не надо только пытаться сделать равными ключи-счетчики) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 23:07 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
sdku, Огромное спасибо, получилось!!! У меня только один вопрос, где-то на форуме прочитал, что лучше использовать Recordset вместо INSERT. Сейчас время посчитал, всё равно долго шел запрос, вставка 160 записей заняло 3 минуты. Это нормальное явление или можно еще как-то ускорить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 11:34 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordset, многовато что-то может таблицы очень большие или сеть ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 12:48 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordset, и запрос типа Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 12:50 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordsetsdku, ...вставка 160 записей заняло 3 минуты.... Это не просто долго-оооочень долго копирование 1001 записи из 4 полей занимает 0.0546875 сек. Попробуйте проделать это на свободных (не связанных таблицах) убедитесь что это так (время может колебаться в зависимости от быстродействия РС) и ищите ошибку в структуре БД ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 13:57 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordsetгде-то на форуме прочитал, что лучше использовать Recordset вместо INSERT. Это справедливо в случаях: 1. Вместо использования INSERT... VALUES или INSERT...FROM с использованием конкретных значений; 2. Если после добавления записи вам понадобится ее ID (счетчик), например, для добавления записей в подчиненную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 14:03 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
Так долго может работать, если таблицы большие (десятки тысяч записей и более) и при этом отсутствуют индексы на полях, по которым соединяются таблицы и отбираются записи. Not IN также "плохая" операция, заставляет сканировать всю таблицу. Еще дикие тормоза даже на небольших таблицах могут возникнуть, если неграмотно использованы макросы данных, вызывающие какие-то долгие вычисления при вставке каждой строкию ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 14:22 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
Попробуйте Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 15:11 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
__MichelleПопробуйте Код: sql 1. 2. 3. 4.
Заметила опечатку – днем писала с планшета. Помечено красным, какая-то пятерка вкралась. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 20:08 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
MrShinТак долго может работать, если таблицы большие (десятки тысяч записей и более) и при этом отсутствуют индексы на полях, по которым соединяются таблицы и отбираются записи. Not IN также "плохая" операция, заставляет сканировать всю таблицу. Еще дикие тормоза даже на небольших таблицах могут возникнуть, если неграмотно использованы макросы данных, вызывающие какие-то долгие вычисления при вставке каждой строкию Раз 160 записей должно вставляться за секунду, то стоит задуматься. Таблица, куда вставляется, действительно большая и отбор записей получается, идет по всей таблице. И индексы не сделаны, просто связи между таблицами составлены. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 10:34 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
__MichelleПопробуйте Код: sql 1. 2. 3. 4.
Да, так тоже получилось и очень быстро вставились записи. Огромное спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 10:59 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordset, Пожалуйста.))) Этот запрос называется Записи без подчиненных. Посмотрите о нем информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 11:09 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
У меня возник еще один вопрос по части вставки. Случайно взглянул на поле IDbaza из таблицы baza. Для него включено автонумерация. Почему вначале через один менялась нумерация, а в конце нормально нумеровал? Устал прыгать? 427 429 432 435 436 439 442 444 450 452 453 455 457 459 461 463 465 467 469 471 473 475 477 479 481 483 484 486 488 490 492 494 496 498 500 502 504 506 508 510 512 513 515 517 519 521 523 525 527 529 531 536 540 542 544 546 548 550 552 554 556 558 560 562 564 566 568 570 572 574 576 578 580 582 584 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 11:58 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordsetПочему вначале через один менялась нумерация, а в конце нормально нумеровал? Скорее всегопропущеные строки были просто удалены. Генерируется всегда последовательно, если не пытаться вставить запись в поле с автонумерацией явно (через insert или рекордсетом) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:39 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
MrShin, Разве получится вставить свое значение в поле счетчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:44 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
__Michelle, Я и не собирался вставлять пропущенные значения. Это следствие вышеуказанной операции INSERT и никакие действия по удалению не производились. И мне непонятно почему так получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:52 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
recordset, Это был не к Вам вопрос.MrShin Генерируется всегда последовательно, если не пытаться вставить запись в поле с автонумерацией явно (через insert или рекордсетом) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:55 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
__MichelleРазве получится вставить свое значение в поле счетчик? Конечно! Я так иногда сбрасываю счетчики после тестирования, чтобы нумерация шла с 1. Не стоит только пытаться вставить значение в конструкторе в режиме редактирования данных. После вставки акцесс продолжит нумеровать с этого значения, а не с максимального, так что могут возникнуть дубликаты записей в поле с автонумерацией, если нет уникального индекса на это поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 12:59 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
MrShin, В конструкторе я вообще подобных манипуляций не проделываю. Сбрасываются счетчики обычно сжатием базы. А у Вас как-то иначе это делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 13:18 |
|
Recordset для Insert
|
|||
---|---|---|---|
#18+
__MichelleСбрасываются счетчики обычно сжатием базы Да уж. Не знал, спасибо :) Но все равно иногда требуется прямая вставка, например при апгрейде бэкэнда скриптами, когда сжатие запускать нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 13:53 |
|
|
start [/forum/topic.php?fid=45&msg=39210155&tid=1613705]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 164ms |
0 / 0 |