दोस्तों 1C 7.7 और Postgres कैसे बनाये

1 सी के रूप में इस तरह के एक लोकप्रिय सॉफ्टवेयर उत्पाद के लिए: एंटरप्राइज, डेवलपर्स को बड़ी संख्या में अनुप्रयोगों के साथ क्रॉस-प्लेटफॉर्म और संगतता प्रदान करना है। विशेष रूप से, प्रत्येक नए संस्करण के साथ, सभी नए DBMS के लिए समर्थन जोड़ा जाता है।

कई उद्यम (मुख्य रूप से छोटे और मध्यम वाले) अभी भी संस्करण 7.7 से 8.x पर स्विच करने की जल्दी में नहीं हैं। और इस मामले में, डेवलपर्स द्वारा प्रदान किया गया एकमात्र संगत DBMS Microsoft SQL है। एक छोटी सी कंपनी के लिए विकल्प बहुत महंगा है: वर्कस्टेशन और एमएस एसक्यूएल सर्वर के लिए लाइसेंस के अलावा, आपको एमएस सर्वर भी खरीदना होगा।

एक वैकल्पिक समाधान सेंट पीटर्सबर्ग कंपनी एटरसॉफ्ट द्वारा विकसित SELTA @ Etersoft प्रौद्योगिकी हो सकता है। SELTA का उपयोग मुक्त Postgre SQL DBMS के संयोजन में किया जाता है और SQL डेटाबेस के साथ 1C 7.7 को काम करने की अनुमति देता है। उत्पाद वाणिज्यिक है और डेवलपर द्वारा एक सस्ती (समाधान की लागत 15,000 पी से है) एमएस एसक्यूएल सर्वर के लिए वैकल्पिक के रूप में तैनात है।

SELTA @ Etersoft Postgre SQL के लिए एक MS SQL Server एमुलेटर है। T-SQL बोली से pgSQL में SQL प्रश्नों का अनुवाद। किसी ग्राहक पीसी पर SELTA @ Etersoft को स्थापित और कॉन्फ़िगर करना तुच्छ है: इंस्टॉलर को शुरू करना, पोस्टग्रे एसक्यूएल से कनेक्शन स्थापित करना और कुछ माउस क्लिक में GUI के माध्यम से एक डेटाबेस बनाना। अंदर से प्रौद्योगिकी पर विचार करना बहुत अधिक दिलचस्प है। पहली नज़र में, SELTA @ Etersoft, जब प्रत्येक अनुरोध को संसाधित करता है, तो निम्नलिखित क्रियाएं करता है:

सॉफ़्टवेयर अनुरोध भेजता है

SELECT TOP 2 * FROM tab;
.
.
.


अनुरोध प्राप्त, प्रसारित और पोस्टग्रे एसक्यूएल द्वारा भेजा जाता है

SELECT * FROM tab LIMIT 2;
.


पोस्टग्रे एसक्यूएल ने अनुरोध को स्वीकार किया, इसे संसाधित किया, परिणाम लौटाया, जो अनुरोध किए गए सॉफ़्टवेयर में वापस आ गया है।

इन सभी क्रियाओं को एसक्यूएल की एक बोली से दूसरी में अनुवाद कहा जाता है।
रजिस्ट्री में MS SQL सर्वर के लिए ODBC ड्राइवर Postgres ड्राइवर में बदल जाता है। इस ड्राइवर में अनुरोधों को पकड़ा, पार्स किया गया, और पोस्टग्रे एसक्यूएल प्रारूप में परिवर्तित किया गया।

छवि

इस अनुकरण को संभव बनाने के लिए, SELTA @ Etersoft दो DBMSs की असामान्यता से संबंधित कई समस्याओं को हल करता है, विशेष रूप से, ताले में अंतर और Postgres में गतिशील कर्सर की कमी। उदाहरण के लिए, लापता डायनामिक प्रश्नों की समस्या को एक तालिका द्वारा सभी परिवर्तनों को ठीक करने के साथ सभी तालिकाओं में परिवर्तन और ट्रिगर के स्वचालित निर्माण के साथ हल किया गया था। इसके लिए धन्यवाद, ड्राइवर यह पता लगाता है कि क्या गतिशील द्वारा बनाए गए कर्सर को फिर से बनाना आवश्यक है।

इस बीच, ऐसी योजना SELTA @ Etersoft के उपयोग पर प्रतिबंध बनाती है और संकलक को पूरी तरह से सार्वभौमिक नहीं बनने देती है। वर्तमान में, यह केवल ODBC ड्राइवर के माध्यम से चलने वाले कार्यक्रमों का समर्थन करता है। हालांकि, डेवलपर्स SELTA @ Etersoft को एक सर्वर के रूप में लागू करने की योजना बनाते हैं, जो एमएस SQL ​​का उपयोग करके सभी अनुप्रयोगों के साथ संगतता सुनिश्चित करेगा।

Postgres और MS SQL Server लॉक सिस्टम काफी nontrivial हैं। लेकिन यह मुद्दा प्रौद्योगिकी के साथ पहले परिचित से परे है, और इसे पाठकों की रुचि पैदा होने पर लेख की निरंतरता में अधिक विस्तार से माना जा सकता है।

Source: https://habr.com/ru/post/In112061/


All Articles