author | eilers <eilers> | 2003-09-29 07:45:13 (UTC) |
---|---|---|
committer | eilers <eilers> | 2003-09-29 07:45:13 (UTC) |
commit | 5e0dd8f6328bff965878c80b9d220a535b826376 (patch) (unidiff) | |
tree | e9f541e05ae510fba50dcce89e98b284f6cc5fd0 /libopie2/opiedb/osqlitedriver.cpp | |
parent | 36d6b0096c41b01e69bb0d12e6c29648cbbf8290 (diff) | |
download | opie-5e0dd8f6328bff965878c80b9d220a535b826376.zip opie-5e0dd8f6328bff965878c80b9d220a535b826376.tar.gz opie-5e0dd8f6328bff965878c80b9d220a535b826376.tar.bz2 |
Fixing umlaut problem.
Diffstat (limited to 'libopie2/opiedb/osqlitedriver.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiedb/osqlitedriver.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/libopie2/opiedb/osqlitedriver.cpp b/libopie2/opiedb/osqlitedriver.cpp index 9214ad3..99fd218 100644 --- a/libopie2/opiedb/osqlitedriver.cpp +++ b/libopie2/opiedb/osqlitedriver.cpp | |||
@@ -1,30 +1,34 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | 2 | ||
3 | #include "osqlresult.h" | 3 | #include "osqlresult.h" |
4 | #include "osqlquery.h" | 4 | #include "osqlquery.h" |
5 | #include "osqlitedriver.h" | 5 | #include "osqlitedriver.h" |
6 | 6 | ||
7 | // fromLocal8Bit() does not work as expected. Thus it | ||
8 | // is replaced by fromLatin1() (eilers) | ||
9 | #define __BUGGY_LOCAL8BIT_ | ||
10 | |||
7 | 11 | ||
8 | namespace { | 12 | namespace { |
9 | struct Query { | 13 | struct Query { |
10 | OSQLError::ValueList errors; | 14 | OSQLError::ValueList errors; |
11 | OSQLResultItem::ValueList items; | 15 | OSQLResultItem::ValueList items; |
12 | OSQLiteDriver *driver; | 16 | OSQLiteDriver *driver; |
13 | }; | 17 | }; |
14 | } | 18 | } |
15 | 19 | ||
16 | OSQLiteDriver::OSQLiteDriver( QLibrary *lib ) | 20 | OSQLiteDriver::OSQLiteDriver( QLibrary *lib ) |
17 | : OSQLDriver( lib ) | 21 | : OSQLDriver( lib ) |
18 | { | 22 | { |
19 | m_sqlite = 0l; | 23 | m_sqlite = 0l; |
20 | } | 24 | } |
21 | OSQLiteDriver::~OSQLiteDriver() { | 25 | OSQLiteDriver::~OSQLiteDriver() { |
22 | close(); | 26 | close(); |
23 | } | 27 | } |
24 | 28 | ||
25 | QString OSQLiteDriver::id()const { | 29 | QString OSQLiteDriver::id()const { |
26 | return QString::fromLatin1("SQLite"); | 30 | return QString::fromLatin1("SQLite"); |
27 | } | 31 | } |
28 | 32 | ||
29 | void OSQLiteDriver::setUserName( const QString& ) {} | 33 | void OSQLiteDriver::setUserName( const QString& ) {} |
30 | void OSQLiteDriver::setPassword( const QString& ) {} | 34 | void OSQLiteDriver::setPassword( const QString& ) {} |
@@ -59,68 +63,74 @@ bool OSQLiteDriver::open() { | |||
59 | * telling failure or success | 63 | * telling failure or success |
60 | */ | 64 | */ |
61 | bool OSQLiteDriver::close() { | 65 | bool OSQLiteDriver::close() { |
62 | if (m_sqlite ) | 66 | if (m_sqlite ) |
63 | sqlite_close( m_sqlite ), m_sqlite=0l; | 67 | sqlite_close( m_sqlite ), m_sqlite=0l; |
64 | 68 | ||
65 | return true; | 69 | return true; |
66 | } | 70 | } |
67 | /* Query */ | 71 | /* Query */ |
68 | OSQLResult OSQLiteDriver::query( OSQLQuery* qu) { | 72 | OSQLResult OSQLiteDriver::query( OSQLQuery* qu) { |
69 | if ( !m_sqlite ) { | 73 | if ( !m_sqlite ) { |
70 | // FIXME set error code | 74 | // FIXME set error code |
71 | OSQLResult result( OSQLResult::Failure ); | 75 | OSQLResult result( OSQLResult::Failure ); |
72 | return result; | 76 | return result; |
73 | } | 77 | } |
74 | Query query; | 78 | Query query; |
75 | query.driver = this; | 79 | query.driver = this; |
76 | char *err; | 80 | char *err; |
77 | /* SQLITE_OK 0 if return code > 0 == failure */ | 81 | /* SQLITE_OK 0 if return code > 0 == failure */ |
78 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { | 82 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { |
79 | qWarning("Error while executing"); | 83 | qWarning("Error while executing"); |
80 | free(err ); | 84 | free(err ); |
81 | // FixMe Errors | 85 | // FixMe Errors |
82 | } | 86 | } |
83 | qWarning("Item count is %d", query.items.count() ); | 87 | // qWarning("Item count is %d", query.items.count() ); |
84 | OSQLResult result(OSQLResult::Success, | 88 | OSQLResult result(OSQLResult::Success, |
85 | query.items, | 89 | query.items, |
86 | query.errors ); | 90 | query.errors ); |
87 | return result; | 91 | return result; |
88 | } | 92 | } |
89 | OSQLTable::ValueList OSQLiteDriver::tables() const { | 93 | OSQLTable::ValueList OSQLiteDriver::tables() const { |
90 | 94 | ||
91 | } | 95 | } |
92 | OSQLError OSQLiteDriver::lastError() { | 96 | OSQLError OSQLiteDriver::lastError() { |
93 | OSQLError error; | 97 | OSQLError error; |
94 | return error; | 98 | return error; |
95 | }; | 99 | }; |
96 | /* handle a callback add the row to the global | 100 | /* handle a callback add the row to the global |
97 | * OSQLResultItem | 101 | * OSQLResultItem |
98 | */ | 102 | */ |
99 | int OSQLiteDriver::handleCallBack( int, char**, char** ) { | 103 | int OSQLiteDriver::handleCallBack( int, char**, char** ) { |
100 | return 0; | 104 | return 0; |
101 | } | 105 | } |
102 | /* callback_handler add the values to the list*/ | 106 | /* callback_handler add the values to the list*/ |
103 | int OSQLiteDriver::call_back( void* voi, int argc, | 107 | int OSQLiteDriver::call_back( void* voi, int argc, |
104 | char** argv, char** columns) { | 108 | char** argv, char** columns) { |
105 | qWarning("Callback with %d items", argc ); | 109 | // qWarning("Callback with %d items", argc ); |
106 | Query* qu = (Query*)voi; | 110 | Query* qu = (Query*)voi; |
107 | 111 | ||
108 | //copy them over to a OSQLResultItem | 112 | //copy them over to a OSQLResultItem |
109 | QMap<QString, QString> tableString; | 113 | QMap<QString, QString> tableString; |
110 | QMap<int, QString> tableInt; | 114 | QMap<int, QString> tableInt; |
111 | for (int i = 0; i < argc; i++ ) { | 115 | for (int i = 0; i < argc; i++ ) { |
112 | qWarning("%s|%s", columns[i], argv[i] ); | 116 | //qWarning("%s|%s", columns[i], argv[i] ); |
117 | |||
118 | #ifdef __BUGGY_LOCAL8BIT_ | ||
119 | tableInt.insert( i, QString::fromLatin1( argv[i] ) ); | ||
120 | tableString.insert( QString::fromLatin1( columns[i] ), | ||
121 | QString::fromLatin1( argv[i] ) ); | ||
122 | #else | ||
113 | tableInt.insert( i, QString::fromLocal8Bit(argv[i] ) ); | 123 | tableInt.insert( i, QString::fromLocal8Bit(argv[i] ) ); |
114 | tableString.insert( QString::fromLocal8Bit( columns[i]), | 124 | tableString.insert( QString::fromLocal8Bit( columns[i]), |
115 | QString::fromLocal8Bit( argv[i] ) ); | 125 | QString::fromLocal8Bit( argv[i] ) ); |
116 | 126 | #endif | |
117 | } | 127 | } |
118 | OSQLResultItem item( tableString, tableInt ); | 128 | OSQLResultItem item( tableString, tableInt ); |
119 | qu->items.append( item ); | 129 | qu->items.append( item ); |
120 | 130 | ||
121 | return ((Query*)voi)->driver->handleCallBack( argc, | 131 | return ((Query*)voi)->driver->handleCallBack( argc, |
122 | argv, | 132 | argv, |
123 | columns ); | 133 | columns ); |
124 | 134 | ||
125 | 135 | ||
126 | } | 136 | } |