[sqlite] out of sequence error 2
How wait for finish query? while(q1.step()); // or q1.fetch() <<< this function i not find CppSQLite3Query q2= db.execQuery("..."); otherstring = db.execQuery("two"); // out of sequence error q2.finalize(); -- View this message in context: http://old.nabble.com/out-of-sequence-error-2-tp32377689p32377689.html Sent from the SQLite mailing list archive at Nabble.com. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] out of sequence error 2
On Thu, Sep 1, 2011 at 9:10 AM, NOCaut wrote: > > How wait for finish query? > while(q1.step()); // or q1.fetch() <<< this function i not find > try q1.finalize(), as someone suggested for your previous post. -- - stephan beal http://wanderinghorse.net/home/stephan/ ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] out of sequence error 2
i think. problemm from parallel access not i try create mutex in main project, than sent mutexHandle to my dll and dw = WaitForSingleObject(hMutex, 5000L) ; Messagebox(0,L"message",L"box",0); // this messaege(0,L"",L"",0); if (dw == WAIT_OBJECT_0) { CppSQLite3Query q = base.execQuery( tmp ); result = utf8_to_unicode(q.getStringField( 0 )); //MessageBoxW(0,result,L"",0); q.finalize(); } -- View this message in context: http://old.nabble.com/out-of-sequence-error-2-tp32377689p32378483.html Sent from the SQLite mailing list archive at Nabble.com. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] sql function to change multiple links within a DB
sqlite> create table questions (answer text); sqlite> insert into questions values('/FAQ/Doctors'); sqlite> select * from questions; /FAQ/Doctors sqlite> select ltrim(ltrim(ltrim(answer,'/'),'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'),'/') from questions; Doctors You need to add whatever chars are valid for your first part of your link -- e.g. 01234567890 if appropriate. The sequence is: trim the first slash trim the chars trim the 2nd slash Michael D. Black Senior Scientist NG Information Systems Advanced Analytics Directorate From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of teahou [tea...@gmail.com] Sent: Wednesday, August 31, 2011 6:37 PM To: sqlite-users@sqlite.org Subject: EXT :[sqlite] sql function to change multiple links within a DB Hello. I am doing some work on a SQLite table with just over 5000 rows. One column holds some html text with links within, and I need to change every one of those links to a new format. A sample link looks like this: /FAQ/Doctors Doctors We will call the 'FAQ' portion of the link, the category and the 'Doctors' portion the Item. I need to change it this: Doctors I would like change all links with one go, but I can't figure out a way to 'wildcard' the category and items. There are 60 different categories and thousands of different items. The closest I have come is to do it in parts, I came up with this: UPDATE questions SET answer = REPLACE(answer, 'http://old.nabble.com/sql-function-to-change-multiple-links-within-a-DB-tp32376393p32376393.html Sent from the SQLite mailing list archive at Nabble.com. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] sqlite3_step causing Segmentation Fault
Hello! I'm coding a simple method in C++ to insert a tuple in a small database. The database has a table called 'user', with 3 fields (id - the primary key, name, and a image). I mapped these fields in a class - id is an int, name is a std::string and image is a std::vector of unsigned char. In this point, I'm ok. To insert this in the database, I write the following method: bool DatabaseClass::insertAdminUser(User user) { int rc; sqlite3_stmt *statement; // mydb is defined in the private area of the class rc = sqlite3_open_v2("database.db", &mydb, SQLITE_OPEN_READWRITE, NULL); if (rc != SQLITE_OK) { sqlite3_close(mydb); return false; } rc = sqlite3_prepare_v2(mydb, "INSERT INTO users (name, isadmin, photo) VALUES (?, 1, ?)", -1, &statement, NULL); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } int i = 0; rc = sqlite3_bind_text(statement, ++i, user.getName().c_str(), -1, SQLITE_TRANSIENT); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } rc = sqlite3_bind_blob(statement, ++i, (void*) user.getPhoto()[0], user.getPhoto().size(), SQLITE_STATIC); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } rc = sqlite3_step(statement); // The app crashes here! if (rc != SQLITE_DONE && rc != SQLITE_ROW) { sqlite3_finalize(statement); sqlite3_close(mydb); return false; } sqlite3_finalize(statement); sqlite3_close(banco); return true; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] sqlite3_step causing Segmentation Fault
Rafael Toledo wrote: > rc = sqlite3_prepare_v2(mydb, "INSERT INTO users (name, isadmin, > photo) VALUES (?, 1, ?)", -1, &statement, NULL); > if (rc != SQLITE_OK) { > sqlite3_finalize(statement); If prepare fails, statement is never updated. So you are passing garbage to sqlite3_finalize. You shouldn't call it at all. > sqlite3_close(banco); What's the relationship between variables named banco and mydb? Why are you using one in open, but the other in close? > rc = sqlite3_bind_blob(statement, ++i, (void*) user.getPhoto()[0], I suspect that should be &user.getPhoto()[0]. Rule of thumb: if you can't get it to compile without a cast, you are likely doing something wrong. My psychic powers tell me that user.getPhoto() returns vector& or similar. You then take the first byte of that vector, and interpret it as a pointer - which of course is a complete nonsense. > rc = sqlite3_step(statement); // The app crashes here! This is where SQLite tries to dereference that bogus pointer for the first time. -- Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] sqlite3_step causing Segmentation Fault
I'm guessing you want "&(user.getPhoto()[0])" or just "user.getPhoto()" A pointer...not the first value of your photo. Michael D. Black Senior Scientist NG Information Systems Advanced Analytics Directorate From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of Rafael Toledo [rafaeldtol...@gmail.com] Sent: Wednesday, August 31, 2011 1:31 PM To: sqlite-users@sqlite.org Subject: EXT :[sqlite] sqlite3_step causing Segmentation Fault Hello! I'm coding a simple method in C++ to insert a tuple in a small database. The database has a table called 'user', with 3 fields (id - the primary key, name, and a image). I mapped these fields in a class - id is an int, name is a std::string and image is a std::vector of unsigned char. In this point, I'm ok. To insert this in the database, I write the following method: bool DatabaseClass::insertAdminUser(User user) { int rc; sqlite3_stmt *statement; // mydb is defined in the private area of the class rc = sqlite3_open_v2("database.db", &mydb, SQLITE_OPEN_READWRITE, NULL); if (rc != SQLITE_OK) { sqlite3_close(mydb); return false; } rc = sqlite3_prepare_v2(mydb, "INSERT INTO users (name, isadmin, photo) VALUES (?, 1, ?)", -1, &statement, NULL); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } int i = 0; rc = sqlite3_bind_text(statement, ++i, user.getName().c_str(), -1, SQLITE_TRANSIENT); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } rc = sqlite3_bind_blob(statement, ++i, (void*) user.getPhoto()[0], user.getPhoto().size(), SQLITE_STATIC); if (rc != SQLITE_OK) { sqlite3_finalize(statement); sqlite3_close(banco); return false; } rc = sqlite3_step(statement); // The app crashes here! if (rc != SQLITE_DONE && rc != SQLITE_ROW) { sqlite3_finalize(statement); sqlite3_close(mydb); return false; } sqlite3_finalize(statement); sqlite3_close(banco); return true; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] (no subject)
On 31 Aug 2011 at 23:24, Igor Tandetnik wrote: > On 8/31/2011 5:56 PM, Tim Streater wrote: >> In the above, each database is newly created as shown. What I had >> forgotten to do was to create the "test" table in the second database >> before copying the data. What seems to happen is that, lacking a >> "test" table in the test2 database, SQLite appears to assume that I >> must mean the "test" table in the test1 database - it tries to copy >> data from the table into itself and so gets the error above. > > Yes. This is documented behavior - see http://sqlite.org/lang_attach.html. Thanks for that helpful link. I'm sure I've looked at it before, but didn't register all the details of how it works. Now I see there's a way of referring to the original database as main, I'll use fully qualified table names wherever I have attached databases. >> Is this reasonable behaviour? I might have expected to have a "no such table" >> error. > > Which part of the documentation might have led you to expect that? No part :-) Sorry for the lack of subject line originally BTW. -- Cheers -- Tim ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] SQLite discovery otD -- ASCII newlines
Putting this here in the hope it comes in useful for someone sometime. Have a table which has some text fields in it. For use with an old system the text fields had newlines in which were expressed with C escapes: 'firstline\nsecondline'. Here's how I fixed it: UPDATE myTable SET textfield=REPLACE(textfield,'\n',x'0A'); If anyone can see a better way, or wants to note some hidden danger with the above, I welcome it. Including if there's a problem depending on whether the field is UTF-8 or UTF-16. Simon. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] SQLite discovery otD -- ASCII newlines
On Thu, Sep 01, 2011 at 02:52:06PM +0100, Simon Slavin scratched on the wall: > Putting this here in the hope it comes in useful for someone sometime. > > Have a table which has some text fields in it. For use with an old > system the text fields had newlines in which were expressed with C > escapes: 'firstline\nsecondline'. Here's how I fixed it: > > UPDATE myTable SET textfield=REPLACE(textfield,'\n',x'0A'); > > If anyone can see a better way, or wants to note some hidden > danger with the above, I welcome it. Including if there's a > problem depending on whether the field is UTF-8 or UTF-16. If there are other C-style escapes, it will incorrectly deal with something like "\\n". -j -- Jay A. Kreibich < J A Y @ K R E I B I.C H > "Intelligence is like underwear: it is important that you have it, but showing it to the wrong people has the tendency to make them feel uncomfortable." -- Angela Johnson ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Unicode Confusion and Database Size
Hi All, I apologize first if this question has its roots in my partial understanding of unicode and the various UTF-encodings. We're using Windows CE and SQLite3 - so far, we have only used ASCII data. Now, we're going to store data in other languages and feel the need to go towards unicode in SQLite3. I understand that the database could be either UTF-8 or UTF-16 - but that would apply to the full DB not to a single column, right? If that is the case, would it not make the database larger if we had a lot of content that was originally ASCII? On the other hand, the other language that we are storing seems to require 3 bytes in UTF-8. Given that, it would appear that using UTF-8 would be a better idea since it will store more "efficiently". In addition, there are a few other questions: - FTS would work fine on both UTF-8 and UTF-16 databases, right? - Can we attach two databases that have different encodings? - When using Wide Strings in Windows CE, is one encoding more preferable over the other to minimize conversions? I already have a database that has a couple of tables that are in UTF-8 - is there an easy way for me to build a database from this that is UTF-16? I'm sorry for the many questions - thanks for the help. Best Regards, Mohit. 1/9/2011 | 10:24 PM. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Unicode Confusion and Database Size
On 9/1/2011 10:24 AM, Mohit Sindhwani wrote: I understand that the database could be either UTF-8 or UTF-16 - but that would apply to the full DB not to a single column, right? Right. If that is the case, would it not make the database larger if we had a lot of content that was originally ASCII? UTF-8 is a superset of ASCII. Strings that consist entirely of 7-bit ASCII characters are represented exactly the same way in ASCII and in UTF-8. That's probably what you want to stick with. On the other hand, the other language that we are storing seems to require 3 bytes in UTF-8. Given that, it would appear that using UTF-8 would be a better idea since it will store more "efficiently". If you have lots of Chinese (or Japanese or Korean) text to store, then UTF-16 might be more compact. For these languages, one character takes three bytes in UTF-8 but only two in UTF-16. On the other hand, plain ASCII characters take one byte in UTF-8 but still two bytes in UTF-16. So if you have a mix of the two, the issue gets murky. In addition, there are a few other questions: - FTS would work fine on both UTF-8 and UTF-16 databases, right? I believe so, but I'm not very familiar with FTS. - Can we attach two databases that have different encodings? Yes. SQLite automatically converts between them as needed, in a transparent fashion. - When using Wide Strings in Windows CE, is one encoding more preferable over the other to minimize conversions? Native API in Windows uses UTF-16. You can request UTF-16 strings even from UTF-8 database - like I said, SQLite converts between them transparently. The cost of conversion is likely negligible compared to the other costs of maintaining a database. In fact, UTF-8 might win simply because it means less data to read from hard drive, even if it requires conversion. The only way to be sure is to test and measure. I already have a database that has a couple of tables that are in UTF-8 - is there an easy way for me to build a database from this that is UTF-16? Using sqlite3 command line utility, run .dump command on the old database. Create a new database. Use "PRAGMA encoding" to set it to UTF-16. Run .import command on it using the dump file from the old one. -- Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Unicode Confusion and Database Size
Hi Igor, On 1/9/2011 11:57 PM, Igor Tandetnik wrote: On 9/1/2011 10:24 AM, Mohit Sindhwani wrote: I understand that the database could be either UTF-8 or UTF-16 - but that would apply to the full DB not to a single column, right? Right. *many useful answers snipped* Thank you very much!! Your answers are perfect to get me started. I have a couple of tables that are going to have the wider characters - it may be that we'll end up splitting the text and FTS tables for that language into a separate database and just attach it if we need it. But at least, I can try this out now. Thanks, Mohit. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Fine tuning of Sqlite
Hi all sqlite users, I'm using Sqlite for an application using 150 Mb databases running on an embedded device (Honeywell Dolphin 9900) into an OSGi Java context. I must give some real clues to my customers to fine tune Sqlite, so I discovered among different ways to have better results PRAGMAs... I wrote an OSGi application used to inject set of configurations and running different tests : inserts, inserts into many transactions, read, may be different threads in the future... It could work fine but it seems that most sets of configurations used induce null connections... Example given I can have connections with SYNCHRONOUS_MODE but I can't turn off JOIURNAL_MODE neither set the SHARED_CACHE and set the READ_UNCOMMITTED isolation level... So I wondered if theer was an (un)official matrix of (un)compatible PRAGMAs... I am using for my benchmark demo the Xerial JDBC driver (layer above org.sqlite JDBC driver) Thanks for your feedback kind regards J.MOLIERE - Mentor/J auteur Eyrolles ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users