SQL заявка от 1C. Създаване на специални услуги

Аз не загубих, просто зареждах малко.
Така. За малките неща.
За мен (не само моето) отношение към управлението на сделки от клиента казах най-важното нещо. Но все още има моментът. Вие не смятате изпращането на "започнете транзакцията" на сървъра, че някои доставчици (най-много, MS SQL също са, но не и в ADO, но в Ado.net) могат да работят в режим на съединение басейн. Добре е, че клиентът бързо повишава връзката от басейна, вместо "дълго" в очакване на създаването на съединение, но този механизъм е по-сложен. И по-конкретен. Тези. "Започнете транзакцията" хипотетично не оставя да не се свързват другите запитвания и "ангажиране", макар и не в такъв тривиален случай. Не, разбира се, това обикновено е фиксирано (Razorbotchik на водача), но защо търсите рейк, когато връзките са били бесинтранти, комитет и релтегани?

Не разбира дизайна

Conner.open (); Conner.execute ("начална транзакция"); Conner.execute (рекорд на струн); Conner.execute ("извършване на транзакция");

Защо тези танци са с транзакции? Нуждаете се от транзакция - vpikhni към искането. Само ако използвате няколко команди в една заявка, първо ще вмъкнете "задаване на отговор;". Всъщност, от сделка тук само по-прекомерно скачане от 1C в ADO, така че е по-лесно да се премахне.

Странна бележка "Трябва да се спомене, че да пишете на таблицата SQL, трябва да има право на собственика на масата.". Мога да позная какво е било предназначено (например фактът, че това влизане е поканено да сравнява базата данни с DBO схемата по подразбиране), но правото не е очевидно. По-добре да носите скриптове, за да създадете таблици и влизане - това ще бъде недвусмислено.

Neacking работа с скоби в част:

| Конвертиране (DateTime, "+ Format (Page Performance)," df \u003d "yyyy.mm.dd hh: mm: ss" ") +" "), // и кошер и работи |" + getguedpone-relnoentifier (Str.org.unikovydentifier () + ", |" + Вземете рецепция Navolneentifier (p.czen.uno-sidetifier () + ",

Ако не ви интересува какво пишат, тогава как могат да могат "новодошлите" да разберат вашите чернови?

Защо сте sopplp на низ? Той ще я скрие. Добре, правилните ухапвания (има много хапещи и не се виждат), но в края на краищата е отляво!

Странно е, че се използват транзакции, но когато презаписването (сякаш една операция), отстраняването възниква в една транзакция и вмъкването в друго. Nipanyna.

Drop маса в сделка в цикъл с въпрос, както написах по-горе - най-накрая е калай. По същество, напълно еднопотребителско решение.

Необходимостта от "архивиране" на тези обеми също причинява големи съмнения. На таблиците с обем до 100 GB годишно от индекса на клъстера често е достатъчно за уши. И след това можете да използвате разделянето.

Заявката към sysobjects е без ограничаване на типовете обекти. Какво ще стане, ако има процедура с това име?

Ако се свързвате в края, тогава защо не затваряйте плаките за запис след употреба?

Освен това. Метод за изпълнение на метода и команди действително имат параметрите, които са малко маска commandypeenum и executeoptionenum. По-специално, има параметър "Adexecutenororecords", който се препоръчва за заявки, от които не се очаква резултатът. Между другото, за четливост препоръчвам използването на тип дизайн

EXECTUTEOPTCEENUM \u003d нова структура ("Adasyncexecute, Adasyncetcheth, AdasyncetfetchnoNBlocking, Adexecutenorecords, Adexecuterream, осиновяване,", 16, 32, 64, 128, 1024, -1);

така можете да направите кода много четливи и трансфери с VBS.

Може да се намери пример за работа с параметри. Накратко, плюсове: основната невъзможност за впръскване на SQL, не е необходимо да мислите за представянето на константи (числа, дати), една компилация от искането до сървъра, спестяванията на мрежовия трафик. Минусът ми е известен един: за някои видове за много прости запитвания (по-специално вложката е тясна в таблицата без индекси) поради бавно работа при 1C и com и com по-бързо за сглобяване на желания скрипт (но също така трябва може да го изпратите на сървъра.

Блокиране на съвети. По подразбиране MS SQL използва нивото на прочетеното извършено изолиране и заключването на записите (ако е възможно) с по-нататъшно ескалиране по броя на ключалките. Обикновено е удобно, но не и в случай на масово натоварване. В случай на масово зареждане, за да се запази паметта, по-добре е да блокирате таблицата изцяло до края на сделката.

Е, като цяло, ако се интересувате от продуктивно натоварване на данни, по-добре е да го извадите, за да го въплъщавате на практика. И ако искате да направите пример за начинаещи, а не излитане, тогава този пример трябва да бъде безупречно красив в своята простота: тя трябва да бъде в един стил на писане (а не това, което свързва, тогава трябва да бъде холистичен и изпълнен , тя трябва да бъде правилна не само от гледна точка на начинаещия, но и от гледна точка на нормален програмист.

Когато версия на сървъра, базата данни не е във файла, но в DBMS на сървъра.

За заявка за данни от SQL 1C се използват заявки на език 1С. Те могат да се използват изрично (програмистът пише в програмния код в 1c) или имплицитно (програмистът извиква функцията на платформата, която генерира заявка или такава функция се нарича - под формата на списък с референтни книги / документ, за пример).

Сървърът 1C превежда заявка в SQL език (съответстваща модификация, поддържана от специфична СУБД) и предава на изпълнение в СУБД (SQL 1C).

Накратко за лицензиране на различни dbms

Кратка информация Ако искате да видите разходите и непознатите, ще се срещнат в ценовите списъци:

  • Има лицензи с различни SQL специално за 1C (т.е. "за използване с 1с)
  • Лицензи за изпълнение - закупени SQL могат да се използват само с 1С (по-евтино)
  • Лицензи за пълно използване - закупени SQL могат да се използват с различни програми (по-скъпо)
  • Има лицензи "по брой на сървърните процеси" (без ограничаване на броя на работните потребители) - PVU
  • Има набор от лицензи "от гнезда / от клиенти" - лус
    o Един лиценз за работа на SQL на сървъра
    o Лицензи за броя на гнездата / клиентите (т.е. на 5 съединения, на 10 съединения и т.н.).

Тук и по-долу е много лицензиран преглед на преглед, тъй като лицензирането във всички СУБД е много сложно, има различни ситуации, отстъпки, наличност / липса на абонамент за неговите, ограничения и правила "по подразбиране" ..

Освен това е необходимо да се спомене, че СУБД могат да имат изискванията за операционната система (така че да е и сървър, като например Windows Server). В версията MS SQL, но има и опция "BYPASS" - SQL Developer Edition.

Кои SQL могат да се използват с 1с

С 1C можете да използвате следните DBMS:

  • Microsoft SQL.
    Исторически, използван най-често. Следователно, платформата 1C работи с MS SQL напълно функционално - всички тип конфигурации са предназначени точно с атаката върху нея.
  • IBM DB2.
  • Oracle.
    Наскоро включени в подкрепа. Има функции.
  • PostgreSQL.
    Наскоро включени в подкрепа. Има функции. Напълно свободен (OpenSource), така използван по-често. Използва се и в случай на определяне на целия 1с комплекс под Linux.

Помислете за характеристиките на използването на различни DBM на свой ред.

Миграция на бази данни 1C 8.2 от файла към сървъри версии 26 юни, 2013


Всички интересни записи бяха отложени на: http://www.th22.ru/blog/
Очакваме ви на нов адрес!

Тук няма нищо трудно, но инструкциите бяха запитани дали ще го направим.

1. Разтоварване на данни възниква в режим 1с "Конфигуратор". Отидете в точка "Администрация -\u003e Информационна база за разтоварване".

Посочете директорията и името на файла, за да разтоварите, след разтоварване, вземете файла за разширение .dt. (Dump база с 1С означава в междинен формат), който ще се използва при зареждане на данни.

2. Подготвяме празна информационна база на SQL Server (за именуването на базите данни тук, както те казват и цветът, но има смисъл да се придържат към определена логика на имена). В средата на Microsoft SQL Management Custio, натиснете бутон на десния бутон на директория "База данни" И изберете параграф "Създаване на база данни ...".

Посочете името на базата данни, собственика и пътя, където ще се съхраняват файловете на хранилището на базата данни.

Кликнете върху Създаване и преминете към следващия елемент.

3. Отидете на сървъра за 1с корпоративен, където в щракате "Администриране на 1с корпоративни сървъри" Разположки "Enterprise Server -\u003e Клъстери -\u003e Информационни бази"Чрез натискане на десния бутон на мишката върху информационната база на елемента в падащото меню Изберете елемент "Създаване -\u003e Информационна база".

Посочете параметрите на информационната база:
Име - името, което се използва при създаване на 1C връзка
Описание - Логично описание на базата данни е изключително информационно.
Сървър на база данни - името или IP адреса на сървъра, където се съхранява нашата база данни
Тип DBMS Тип - В нашия случай изберете MS SQL Server
Потребител и парола на сървъра на базата данни - Потребителят има право на нашата база данни

След завършване, нашата информационна база ще бъде добавена към списъка, ако получите грешка, след това проверете коректността на посочените данни.

4. Ние пускаме 1С предприятие и добавим информационната база, която създадохме, за която избирате елемента "Добавяне", след това изберете "Добавяне към списъка на съществуваща информационна база".

Посочете името на информационната база, която може да бъде уникална за всеки потребител, както се съхранява в неговия профил, но все още по-добре се придържа към определена система за именуване. Също така уточняваме, че базата се намира на сървъра 1C Enterprise.

5. Посочете настройките за връзка:
1C корпоративен сървърн клъстер - Име или IP адрес на сървъра на приложения
Име на информационната база в клъстера - името, посочено в третия параграф (в нашия случай, подобно име на базата данни на SQL сървъра на MS, въпреки че може да се различава)

6. След добавяне на база данни към списъка, преминете към режима на конфигуратора и изберете първия елемент. "Администрация -\u003e Заредете информационната база"И посочете файла, изтеглен в първия параграф.

7. В края на изтеглянето конфигураторът ще бъде рестартиран и базата може да се използва.