मेरा इग्नाइट इंस्टेंस (2.7.5) चालू है और काम कर रहा है, मैं इसे डीबीवर से जोड़ सकता हूं और टेबल बना सकता हूं, डेटा स्टोर और पुनर्प्राप्त कर सकता हूं।

अब मैं pyodbc का उपयोग करके एक पायथन 3 (पायथन 3.6.8) स्क्रिप्ट से कनेक्ट करने का प्रयास कर रहा हूं। मैंने अपाचे इग्नाइट ओडीबीसी ड्राइवर को ${IGNITE_HOME}/platforms/cpp निर्देशिका में दिए गए स्रोत कोड से संकलित और स्थापित किया है। स्क्रिप्ट 2 कॉलम एक इंट और एक वर्चर के साथ एक टेबल बनाने में सक्षम है, लेकिन जब मैं वर्चर कॉलम में एक स्ट्रिंग मान डालने का प्रयास करता हूं तो एक अपवाद फेंक दिया जाता है: -

    Traceback (most recent call last):
      File "/path/Projects/test_ignite/main.py", line 27, in <module>
        main()
      File "/path/Projects/test_ignite/main.py", line 23, in main
        create_table(conn)
      File "/path/Projects/test_ignite/main.py", line 16, in create_table
        cursor.execute(sql, (row_counter, col_1))
    pyodbc.Error: ('HYC00', '[HYC00] Data type is not supported. [typeId=-9] (0) (SQLBindParameter)')

दूसरे कॉलम पर डेटा प्रकार बदलना अपेक्षा के अनुरूप काम करता है।

नमूना स्क्रिप्ट नीचे है: -

import pyodbc


def create_table(conn):
    sql = 'CREATE TABLE IF NOT EXISTS sample (key int, col_1 varchar, PRIMARY KEY(key))'
    cursor = conn.cursor()
    cursor.execute(sql)

    sql = 'insert into sample (key, col_1) values (?, ?)'
    num_rows = 10
    row_counter = 0

    while row_counter < num_rows:
        row_counter = row_counter + 1
        col_1 = 'Foo'
        cursor.execute(sql, (row_counter, col_1))    # Exception thrown here


def main():
    conn = pyodbc.connect('DRIVER={Apache Ignite};' +
                          'SERVER=10.0.1.48;' +
                          'PORT=10800;')
    create_table(conn)


if __name__ == '__main__':
    main()
0
Richard Crossley 17 सितंबर 2019, 12:25

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि पीओओडीबीसी WVARCHAR प्रकार का उपयोग करता है। इग्नाइट का ODBC इसका समर्थन नहीं करता है। मैं jdbc बाइंडिंग या पायथन थिन क्लाइंट का उपयोग करने की सलाह दूंगा।

मैंने अपाचे इग्नाइट जिरा के खिलाफ एक मामला दर्ज किया है: IGNITE-12175

1
alamar 17 सितंबर 2019, 15:04
धन्यवाद। मैं जिरा कैसे देख सकता हूं, क्या मुझे इग्नाइट जीरा पर लॉगिन की आवश्यकता है?
 – 
Richard Crossley
17 सितंबर 2019, 17:51
1
हां, आप चाहें तो इस मुद्दे को देख सकते हैं।
 – 
alamar
18 सितंबर 2019, 12:09