2011-01-19 6 views
8

क्या में एसक्यूएल सिंटैक्स पर कोई संदर्भ/मैनुअल है EXCEL जेट 4.0 के लिए माइक्रोसॉफ्ट ओएलई डीबी प्रदाता से जुड़ा हुआ है?जेट 4.0 के लिए माइक्रोसॉफ्ट ओएलई डीबी प्रदाता के साथ एक्सेल में एसक्यूएल पर कोई संदर्भ/मैनुअल?

उदाहरण के लिए, मैं टाइप डेट के स्थिरांक कैसे लिखूं?

कौन से कीवर्ड/फ़ंक्शंस/क्लॉज उपलब्ध हैं?

उत्तर

20

एक जेट 4.0 डेटा स्रोत के रूप Excel का उपयोग करते हैं, तो सबसे अच्छा संदर्भ मुझे पता है की है:

How To Use ADO with Excel Data from Visual Basic or VBA

विशेष महत्व यह है कि मौजूदा कॉलम का समग्र डेटा प्रकार निर्धारित होता है जब इसमें mixed data types होता है।

जेट 4.0 के लिए Microsoft OLE DB प्रदाता का संबंध है, सबसे अधिक प्रासंगिक लेख यह है:

ADO Provider Properties and Settings: Microsoft Jet 4.0 Provider Properties

कहा, एक्सेल विशेष विस्तार बेहतर पहले लेख में कवर किया जाता है।

एक महत्वपूर्ण पकड़ लिया जब एक्सेल और SQL का उपयोग कर आप के बारे में पता होना चाहिए:

BUG: Memory leak occurs when you query an open Excel worksheet by using ActiveX Data Objects (ADO)

कौन से कीवर्ड/कार्य/खंड उपलब्ध हैं?

के रूप में जेट 4.0 एसक्यूएल का उपयोग कर का संबंध, इस लेख सबसे अच्छा मैं कभी भी मिल गया है है:

Intermediate Microsoft Jet 4.0 SQL

सिद्धांत रूप में, SQL section of the Access Help प्रासंगिक होनी चाहिए लेकिन यह एक particularly low quality और जेट 4.0 का है विशेष रूप से खराब कवरेज पीड़ित है।

फिर से, सब कुछ एक्सेल में सीधे काम नहीं करेगा। उदाहरण के लिए, हालांकि आप एक नई वर्कशीट और कार्यपुस्तिका बनाने के लिए CREATE TABLE एसक्यूएल डीडीएल का उपयोग कर सकते हैं, आप NOT NULL सक्षम कॉलम नहीं बना सकते क्योंकि यह शारीरिक रूप से संभव नहीं है। इसके अलावा, एक्सेल के डेटा प्रकार कम दानेदार के रूप में उदा। सबसे संख्यात्मक प्रकार DOUBLE FLOAT पर नक्शा।

एसक्यूएल में उपयोग किए जाने वाले अभिव्यक्तियों के संबंध में, जेट 4.0 अभिव्यक्ति सेवा किसी भी तरह से वीबीए अभिव्यक्ति सेवाओं का उपयोग करती है। व्यापक रूप से बोलते हुए, जेट किसी भी वीबीए 5.0 का उपयोग कर सकता है (नवीनतम संस्करण नहीं, वीबीए 6.0 होने के नाते) फ़ंक्शन जो एक तरीका नहीं है जो मानों को आविष्कार करता है, और रिटर्न केवल एक आंतरिक मूल्य के सरल आंतरिक डेटा प्रकारों का एक एकल मूल्य देता है (कोई सरणी नहीं, कोई ऑब्जेक्ट इत्यादि नहीं।)। मुझे लगता है कि मैं यह कहकर सही हूं कि माइक्रोसॉफ्ट ने जेट 4.0 द्वारा समर्थित वीबीए कार्यों की एक निश्चित सूची स्पष्ट रूप से प्रकाशित नहीं की है। हालांकि, मेरा मानना ​​है कि निम्न आलेख में एक सूची VBA कार्यों कि जेट 4.0 में useable की सूची के साथ पूरी तरह से मेल खाना होता है:

How to configure Jet 4.0 to prevent unsafe functions from running in Access 2003

(सूची उपशीर्षक के तहत किसी तालिका में है "उपयोग सैंडबॉक्स मोड आपरेशन जेट 4.0 सर्विस पैक 3 और बाद में "।)

ध्यान दें कि कुछ कार्य VBA की तुलना में जेट 4.0 में अलग-अलग व्यवहार करते हैं। मेरे सिर के ऊपर से, मैं दो के बारे में सोच सकता हूँ।IIF() जेट 4.0 (अनूदित, AFAIK) में शॉर्टकट कर सकते हैं: वीबीए में, TRUE और FALSE स्थितियों का मूल्यांकन किया जाता है, जेट 4.0 में केवल मिलान की गई स्थिति का मूल्यांकन किया जाता है। CDEC() (DECIMAL पर कास्ट) फ़ंक्शन broken in Jet 4.0 है।

मैं प्रकार की स्थिरता कैसे लिखूं? मेरा मतलब है, एसक्यूएल में 2011.01.20 (यह निरंतर मान) व्यक्त करने का तरीका, उदाहरण के लिए, क्या मैं '2011-01-20', या # 2011-01-20 #, या कुछ और उपयोग करता हूं?

मैं इसे 'शाब्दिक मूल्य' के रूप में जानता हूं।

यह वीबीए i.e. #m/d/yyyy# जैसा ही है, इसलिए आज की तारीख #1/20/2011# होगी। हालांकि, मैं ISO 8601 दिनांक प्रारूप और एकल उद्धरण (पोर्टेबिलिटी के लिए) का उपयोग करना पसंद करता हूं और हमेशा समय क्षेत्र शामिल करता हूं (क्योंकि जेट 4.0 में एक अस्थायी डेटा प्रकार है, DATETIME है) और, क्षेत्रीय सेटिंग्स को सम्मानित करने के लिए, CDATE() कास्ट करें DATETIME फ़ंक्शन उदा आज की तारीख CDATE('2011-01-20 00:00:00') होगी।


[मूल रूप से, सोच ओ पी का मतलब "मैं प्रकार DATE के एक स्तंभ बना सकता हूँ?"]

आप उपयोग कर सकते CREATE TABLE DDL उदा

CREATE TABLE [Excel 8.0;DATABASE=C:\MyNewWorkbook.xls].MyTable 
(
my_date_col DATETIME 
); 

नोट जबकि जेट 4.0 DATETIME के डेटा प्रकार का सम्मान करेगा, ऐसी कोई बाधा जब कार्यपुस्तिका Excel में संपादित किया जाता है यह है कि: यदि तालिका Range बढ़ा दिया गया है और गैर अस्थायी डेटा तो डेटा प्रकार जोड़ा ' देखा गया 'जेट 4.0 द्वारा परिणामस्वरूप बदल सकता है।


+0

टाइप तिथि की writting स्थिरांक कहकर, मेरा मतलब है, SQL में 2011.01.20 (यह निरंतर मान) व्यक्त करने का तरीका, उदाहरण के लिए, क्या मैं '2011-01-20' या # 2011-01-20 का उपयोग करता हूं #, या कुछ और? – deerchao

+0

# 2011-01-20 # – Juancentro

+0

का उपयोग करें धन्यवाद, यह एक बहुत व्यापक लिंक सूची है। जो कुछ मैं जोड़ता हूं वह यह है कि .xlsb फ़ाइलें xlsm या xls से भी बदतर लगती हैं; और एक भरोसेमंद (यदि बोझिल) कार्यप्रणाली अप्रत्यक्ष रूप से डेटा को पढ़ना है: डेटा को स्थानीय अस्थायी फ़ोल्डर में csv फ़ाइलों में डंप करें और जेट टेक्स्ट ISAM का उपयोग करके उन्हें पढ़ें। –

6

कौन से कीवर्ड/कार्य/खंड उपलब्ध हैं?

YEAR, WEEKDAY, VarType, Val, UCase$, UCase, TypeName, TRIM$, TRIM, TIMEVALUE, TimeSerial, Timer, TIME$, TIME, TAN, SYD, Switch, String$, String, StrConv, StrComp, Str$, Str, Sqr, Space$, Space, SLN, SIN, Sgn, SECOND, RTrim$, RTrim,Round, Rnd, RIGHTB$, RIGHTB, RIGHT$, RIGHT, RGB, RATE, QBColor, PV, PPMT, PMT, Partition, Oct$, Oct, NPV, NPER, NOW, MONTH, MIRR, MINUTE, MIDB$, MIDB, MID$, MID, LTrim$, LTrim, LOG, LENB, LEN, LEFTB$, LEFTB, LEFT$, LEFT, LCase$, LCase, IsObject, IsNumeric, IsNull, ISERROR, IsEmpty, IsDate, IRR, IPMT, INT, InStr, IMEStatus, IIF, HOUR, Hex$, Hex, Fv, Format$, Format, Fix, EXP, Error$, Error, DDB, Day, DATEVALUE, DATESERIAL, DatePart, DateDiff, DATEADD, DATE$, Date, CVErr, CvDate, CVAR, CSTR, CSNG, COS, CLNG, CINT, CHRW$, CHRW, CHRB$, CHRB, CHR$, CHR, Choose, CDBL, CDATE, CCUR, CBYTE, CBOOL, ATN, ASCW, ASCB, ASC, Array, ABS

उनके तर्क और विवरण

पाया जा सकता है here

हर समारोह मेरी एसक्यूएल में काम कर रहा है:

कार्यों सूची के बारे में, मैं फ़ाइल MSMDCB80.DLL में निम्नलिखित नाम सूची में पाया गया प्रश्न, तो मुझे लगता है, यह 125 कार्यों की एक व्यापक सूची है।

+2

स्टैक ओवरव्लो: 2008 – Filip

+0

के बाद से विक्रेता आलस्य के लिए तैयार करना मुझे SQL क्वेरी में काम करने के लिए 'ऐरे' नहीं मिला। 'आईआईएफ' वीबीए के 'आईआईएफ' (शॉर्ट-सर्किट में सक्षम) के लिए अलग-अलग व्यवहार करता है। आपकी सूची में 'सीडीईसी' का कोई उल्लेख नहीं है लेकिन फिर यह किसी भी तरह एसक्यूएल में कुछ भी उपयोगी नहीं करता है! – onedaywhen

+0

मुझे लगता है कि आपकी सूची वही है जैसा कि मैंने अपने उत्तर में लिंक किया है: https://support.microsoft.com/en-gb/kb/294698 – onedaywhen

संबंधित मुद्दे

 संबंधित मुद्दे