From sunshine at public.kherson.ua Mon Aug 2 20:06:59 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 2 12:07:05 2004 Subject: Data Import In-Reply-To: <25384465.1091464061861.JavaMail.root@ernie.psp.pas.earthlink.net> Message-ID: On 8/2/04 7:27 PM, "Anna Kritselis" wrote: > Now - on to the data - once again, the sql is only read one line at a time - I > tried ascii, xml, sql files, but am having no luck. This is sample ascii file > which doesn't work - comma delimited: > 1, 'Acts Positively', 1, 1, 0.1, 100 > 2, 'Shares Well', 1, 1, 0.5, 200 > 3, 'Prepares Homework', 1, 1, 0.3, 200 I assume this line have DOS end lines. You try import it using Cursor,ImportASCII() ? Have you specify line delimiter to be \n ? Please download Valentina studio and subscribe to its list. Use Valentina Studio to create simplest table with say 2 fields and 5 records. EXPORT it into ASCII coma separated. Jochen, can we do export ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Mon Aug 2 21:16:03 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 2 13:16:12 2004 Subject: Index_String more tests DONE. Message-ID: Now my tests in priv libs when all tests are ON looks as ************************************************************************* * FINISH ************************************************************************* * Total tests : 1652 * Failed tests : 0 * Failed tests on exception : 0 * Leaked tests : 0 * * Total asserts : 383617629 * Failed asserts : 0 -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From AYU8 at CDC.GOV Mon Aug 2 15:16:27 2004 From: AYU8 at CDC.GOV (Sims, John) Date: Mon Aug 2 14:16:36 2004 Subject: RAM-based Database/Vsets,Vlinks and VServer Message-ID: Hi Ruslan, I saw your Index_String test results. Congratulations! I have been working on some early concept ideas for a new project and I remembered something you said about Valentina 2.0 as quoted below: Hi All, I think we will start to grow list of new features that we have implement on 2.0 engine. Igor, Alex, Sergey, Ivan, Yuri, please participate in this. I will start below template of list, and let's grow it. Everybody know his tasks so mention them. So, this is FIRST DRAFT made in 10 minutes by me. ----------------------------------------------------- KERNEL ----------------------------------------------------- * RAM-based database Does this mean the entire database will be able to exist only in RAM with nothing written to the disk? If so, will there be a way to create a database in RAM and then, if desired, write the database to disk? If not, I would like to make a feature request :-) As you know, I'm a V4RB user, so something like... vdbData.WriteToDisk(inFolderItem as FolderItem) ...would be nice. The opposite would be nice also... vdbData.WriteToRAM() ...this would take a database that exists on disk and create a RAM-based version of it. I would not be doing this for speed reasons...Valentina is plenty fast. It is hard to explain how I would use this. I just got the idea for this project on a plane flight last week and I still do not have a good picture of how the software would work, but I believe these features would really make my idea easier to bring to reality. Also, while I have your attention, I have been looking at the new Vsets and Vlinks. Very nice!!! I was wondering if Vsets are going to work with Valentina Server once it is converted to work with the 2.0 kernel. If so, will we be able to declare Vsets as Server-side or Client-side similar to Vcursors? I can imagine creating several Vsets Server-side then creating a Client-side Vset that is the intersection/union of the Server-side Vsets so that most of the work is done on the server then the result set that I want is returned to me so I can work with it Client-side. I'm just trying to get my head wrapped around these great new features! Thanks for your time. - John From sunshine at public.kherson.ua Mon Aug 2 22:43:06 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 2 14:43:16 2004 Subject: RAM-based Database/Vsets,Vlinks and VServer In-Reply-To: Message-ID: On 8/2/04 10:16 PM, "Sims, John" wrote: Hi John, > I saw your Index_String test results. Congratulations! Thank you, but I have made one more test and it fails. Debugging. > I have been working on some early concept ideas for a new project and I > remembered something you said about Valentina 2.0 as quoted below: > >> * RAM-based database > > Does this mean the entire database will be able to exist only in RAM > with nothing written to the disk? Yes, and you should understand that db must fit into YOUR computer RAM. > If so, will there be a way to create > a database in RAM and then, if desired, write the database to disk? If > not, I would like to make a feature request :-) Not implemented, but yes this is good feature. And later raise from disk to RAM. > As you know, I'm a V4RB user, so something like... > > vdbData.WriteToDisk(inFolderItem as FolderItem) > > ...would be nice. The opposite would be nice also... > > vdbData.WriteToRAM() > > ...this would take a database that exists on disk and create a RAM-based > version of it. Correct. In similar way work RAM based dbs. They work many hours in RAM but can make image on disk. > I would not be doing this for speed reasons...Valentina is plenty fast. But RAM-based database will be even several times faster!!!!! 5-10 times I think. > It is hard to explain how I would use this. I just got the idea for > this project on a plane flight last week and I still do not have a good > picture of how the software would work, but I believe these features > would really make my idea easier to bring to reality. Also note, in regular disk based database we will be able do TMP RAM-based small tables. > Also, while I have your attention, I have been looking at the new Vsets > and Vlinks. Very nice!!! I was wondering if Vsets are going to work > with Valentina Server once it is converted to work with the 2.0 kernel. Yes, we have decide put all this functionality to Vserver also. This have sense at least for fast intranet network. If you have 1Gb network, then it will act not slower of HDD. > If so, will we be able to declare Vsets as Server-side or Client-side > similar to Vcursors? Not on start. We also have think about this. Require time to implement. > I can imagine creating several Vsets Server-side > then creating a Client-side Vset that is the intersection/union of the > Server-side Vsets so that most of the work is done on the server then > the result set that I want is returned to me so I can work with it > Client-side. Exactly! you watch directly into ROOT! :-) Such feature will allow us reduce network traffic. Sets and Links this are tools of Navigational Model in the first turn. Having server-side sets and ability do operations on server, We can be effective almost as SQL and cursor. Although to be exactly effective as SQL or even better we need server-side scripts based e.g. On Phyton or Java > I'm just trying to get my head wrapped around these great new features! -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Wed Aug 4 23:42:12 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 4 15:42:35 2004 Subject: Project? In-Reply-To: Message-ID: On 8/4/04 10:50 PM, "jda" wrote: Hi Jon, > May I ask how it's going? I have modified my project to deal with all > the new issues introduced in 2.0 (the ones I have encountered, > anyway) -- I'd be happy to send you the update if you think it will > help in debugging. According to your project 1) we have fix bugs in cursor.Delete() 2) and I right now have practically finish Index_String. I have spend almost 2 weeks on this task. And I need more tests for it yet, but I think bugs are fixed, so these new test will go fast. Oh! testes have finish! ************************************************************************* * FINISH ************************************************************************* * Total tests : 2246 * Failed tests : 0 * Failed tests on exception : 0 * Leaked tests : 0 * * Total asserts : 700169801 * Failed asserts : 0 Having this, we will make new beta. I think tomorrow. Also we will make new V4MD WIN beta, where will be 2 new examples -- pictures, images -- binding Next my task: - Field.CaseInsensetive() flag. Actually we have found that we will do this in the next way: Vfield.Collator as integer As far as we see it, we will have 6 levels here. 0 - no affect. Build case-sensetive index like in V 1.x next 5 levels define case insensitive index as we have told before. also some levels affect accents chars and so on. And after that I will need make working flag IndexByWords for String, VarChar and Text fields. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 5 00:07:30 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 4 16:07:39 2004 Subject: Project? In-Reply-To: Message-ID: On 8/4/04 11:54 PM, "jda" wrote: >> According to your project >> >> 1) we have fix bugs in cursor.Delete() >> >> 2) and I right now have practically finish Index_String. >> I have spend almost 2 weeks on this task. And I need more tests for it yet, >> but I think bugs are fixed, so these new test will go fast. >> >> Oh! testes have finish! >> >> ************************************************************************* >> * FINISH >> ************************************************************************* >> * Total tests : 2246 >> * Failed tests : 0 >> * Failed tests on exception : 0 >> * Leaked tests : 0 >> * >> * Total asserts : 700169801 >> * Failed asserts : 0 >> >> > > > >> Next my task: >> - Field.CaseInsensetive() flag. >> >> >> Actually we have found that we will do this in the next way: >> >> Vfield.Collator as integer >> >> As far as we see it, we will have 6 levels here. >> >> 0 - no affect. Build case-sensetive index like in V 1.x >> >> next 5 levels define case insensitive index as we have told before. >> also some levels affect accents chars and so on. > > That sounds very cool. :-) >> And after that I will need make working flag IndexByWords for String, >> VarChar and Text fields. >> > > Excellent! Will .EscapeString be part of that, too? Tomorrow? I need check it. Must be easy. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 5 13:49:48 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 05:49:54 2004 Subject: V4RB:NEW: example Common/EscapeString.rb Message-ID: -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 5 16:30:57 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 08:31:06 2004 Subject: V4RB:NEW:Example Common/MacOS_Creator Message-ID: Added into CVS. Bug fixed. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 5 18:19:35 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 10:19:42 2004 Subject: V4RB:NEW:Example Common/SetExtensions Message-ID: -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 6 00:36:51 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 16:37:09 2004 Subject: V4RB:NEW: example Common/Error_Handling Message-ID: Example demonstrate how you can switch between new way based on exceptions and old way based on db.ErrorCode -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 6 00:43:00 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 16:43:04 2004 Subject: V4RB 2.0b11 uploaded. Message-ID: KERNEL/BUG * cursor.deleteRecord V4RB/NEW * 4 new examples. V4RB/BUG * db.Creator works now. V4RB/BUG * Valentina.ThrowExceptions works now. V4RB/BUG * Valentina.EscapeString() works now. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Thu Aug 5 18:20:03 2004 From: jda at his.com (jda) Date: Thu Aug 5 17:20:10 2004 Subject: V4RB 2.0b11 uploaded. In-Reply-To: References: Message-ID: Hi Ruslan, I get a "field not found" exception with this query: select id,hit,uniqueID,authors,thedate,title,editors from thereferences ORDER BY authorsSortMethod Am I using a reserved word for a field name Or is the authorsSortMethod the problem? It is declared as authorsSortMethod = CreateTextField("authorsSortMethod", 128, "English", Valentina.fIndexed, "Upper(authors)") Thanks, Jon From sunshine at public.kherson.ua Fri Aug 6 01:32:36 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 5 17:32:42 2004 Subject: V4RB 2.0b11 uploaded. In-Reply-To: Message-ID: On 8/6/04 1:20 AM, "jda" wrote: Hi Jon, > I get a "field not found" exception with this query: It not show which exactly field is problem ? What error code ? > select id,hit,uniqueID,authors,thedate,title,editors from > thereferences ORDER BY authorsSortMethod > > Am I using a reserved word for a field name > > > Or is the authorsSortMethod the problem? It is declared as > > authorsSortMethod = CreateTextField("authorsSortMethod", 128, > "English", Valentina.fIndexed, "Upper(authors)") -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Thu Aug 5 18:33:43 2004 From: jda at his.com (jda) Date: Thu Aug 5 17:33:48 2004 Subject: DeleteRecord still fails In-Reply-To: References: Message-ID: >KERNEL/BUG * cursor.deleteRecord > Hm, I'm still getting a VException with the line myCursor.deleteRecord (the cursor is OK, it's ReadWrite, fresh database, etc.). Jon From jda at his.com Thu Aug 5 18:42:13 2004 From: jda at his.com (jda) Date: Thu Aug 5 17:42:21 2004 Subject: V4RB 2.0b11 uploaded. In-Reply-To: References: Message-ID: >On 8/6/04 1:20 AM, "jda" wrote: > >Hi Jon, > >> I get a "field not found" exception with this query: > >It not show which exactly field is problem ? > >What error code ? 525579 There is a space where the field name should be, I think. Here are the last few lines of the log: DataBase_SqlSelect... PARAM: instance = 26531596 PARAM: inQuery = "select id,hit,uniqueID,authors,thedate,title,editors from thereferences ORDER BY authorsSortMethod" PARAM: inCursorLocation = 2 PARAM: inCursorType = 1 PARAM: inDirection = 2 return object = 0 return object = 0 Jon From sunshine at public.kherson.ua Fri Aug 6 08:05:01 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 6 00:05:09 2004 Subject: DeleteRecord still fails In-Reply-To: Message-ID: On 8/6/04 1:33 AM, "jda" wrote: >> KERNEL/BUG * cursor.deleteRecord >> > > Hm, I'm still getting a VException with the line > > myCursor.deleteRecord > > (the cursor is OK, it's ReadWrite, fresh database, etc.). May be because you have BLOBs in cursor ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Fri Aug 6 08:51:17 2004 From: jda at his.com (jda) Date: Fri Aug 6 07:51:40 2004 Subject: DeleteRecord still fails In-Reply-To: References: Message-ID: >On 8/6/04 1:33 AM, "jda" wrote: > >>> KERNEL/BUG * cursor.deleteRecord >>> >> >> Hm, I'm still getting a VException with the line >> >> myCursor.deleteRecord >> >> (the cursor is OK, it's ReadWrite, fresh database, etc.). > >May be because you have BLOBs in cursor ? > No, two integer fields. Jon From jda at his.com Fri Aug 6 12:05:06 2004 From: jda at his.com (jda) Date: Fri Aug 6 11:05:26 2004 Subject: EscapeString paramters In-Reply-To: References: Message-ID: Ruslan, What is the second parameter for .EscapeString for? Since it is named inforRegEx I assume you should set this to true if it's a REGEX search, but to false if it's a regular SQL search. Is this correct? What does it do, exactly? Thanks, Jon From sunshine at public.kherson.ua Fri Aug 6 19:38:37 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 6 11:38:44 2004 Subject: EscapeString paramters In-Reply-To: Message-ID: On 8/6/04 7:05 PM, "jda" wrote: Hi Jon, > What is the second parameter for .EscapeString for? Since it is named > inforRegEx I assume you should set this to true if it's a REGEX > search, but to false if it's a regular SQL search. Is this correct? > What does it do, exactly? Let me remind. Valentina 2.0 use SQL92 standard LIKE, I.e. You can use only chars % and _ WHERE fld LIKE 'fff%sss _bbbb' To get power of REGEX syntax you should use new keyword WHERE fld REGEX '\Abbb' WHERE fld REGEXP '\Abbb' For regex we need escape more symbols ( ) . ^ -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 6 19:40:15 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 6 11:40:21 2004 Subject: EscapeString paramters In-Reply-To: Message-ID: On 8/6/04 7:05 PM, "jda" wrote: > Ruslan, > > What is the second parameter for .EscapeString for? Since it is named > inforRegEx I assume you should set this to true if it's a REGEX > search, but to false if it's a regular SQL search. Is this correct? > What does it do, exactly? Btw, As I understand you use in your project escapestring() ? Where and when you use it ? I think that you can try to use instead SQL BINDING. This will do work easier and faster. In the SQL folders you can find example Binding. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Fri Aug 6 12:54:25 2004 From: jda at his.com (jda) Date: Fri Aug 6 11:54:43 2004 Subject: EscapeString paramters In-Reply-To: References: Message-ID: > >Btw, > >As I understand you use in your project escapestring() ? > > >Where and when you use it ? > >I think that you can try to use instead SQL BINDING. >This will do work easier and faster. > >In the SQL folders you can find example Binding. > I use EscapeString for all my indexed searches. I never heard of SQL binding -- I'll take a look. Thanks, Jon From jda at his.com Fri Aug 6 14:26:36 2004 From: jda at his.com (jda) Date: Fri Aug 6 13:26:59 2004 Subject: EscapeString paramters In-Reply-To: References: Message-ID: > > >As I understand you use in your project escapestring() ? > > >Where and when you use it ? > >I think that you can try to use instead SQL BINDING. >This will do work easier and faster. > >In the SQL folders you can find example Binding. > Hm, I don't see how I would use this for searching indexes indexedbyword. But it does bring up a question about .escsapescring: If I do a SQL search of an indexed (by word) field, it's for the name O'Shea, would I first s = Valentina.EscapeString("O'Shea", false) and if it's a Valentina REGEX search s = Valentina.EscapeString("O'Shea", true) And what would I do for a SQL LIKE search? I guess I'm asking how V2.0 is going to handle indexes... Thanks, Jon From sunshine at public.kherson.ua Fri Aug 6 22:23:37 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 6 14:23:47 2004 Subject: EscapeString paramters In-Reply-To: Message-ID: On 8/6/04 9:26 PM, "jda" wrote: >> In the SQL folders you can find example Binding. >> > > Hm, I don't see how I would use this for searching indexes > indexedbyword. But it does bring up a question about .escsapescring: > > If I do a SQL search of an indexed (by word) field, it's for the name > O'Shea, would I first > > s = Valentina.EscapeString("O'Shea", false) Yes, because you will need build SQL string of query which looks "...WHERE fld = 'O\'Shea' ^^^^ If you will not have ESCAPE on apostrophe, then how parser can know that this apostrof is not the end of string constant? You see? > and if it's a Valentina REGEX search > > s = Valentina.EscapeString("O'Shea", true) > > And what would I do for a SQL LIKE search? Also s = Valentina.EscapeString("O'Shea", false) > I guess I'm asking how V2.0 is going to handle indexes... -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 6 22:28:30 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 6 14:28:35 2004 Subject: EscapeString paramters In-Reply-To: Message-ID: On 8/6/04 9:26 PM, "jda" wrote: >> I think that you can try to use instead SQL BINDING. >> This will do work easier and faster. >> >> In the SQL folders you can find example Binding. >> > > Hm, I don't see how I would use this for searching indexes > indexedbyword. Easy You write not s = Valentina.EscapeString("O'Shea", false) q = "select ... WHERE fld = '" + s + "'" db.SqlSelect( q ) With bind you can write: q = "select ... WHERE fld = :1" arr.addItem( "O'Shea" ) db.SqlSelect( q, arr ); We win here that 1) we do not do escape string, instead ZERO TIME 2) we do not concatenate query string, instead ZERO TIME. 3) parser work on smaller query string, so less time. 4) parser do not convert escaped string back, instead ZERO time. > But it does bring up a question about .escsapescring: > If I do a SQL search of an indexed (by word) field, it's for the name > O'Shea, would I first > > s = Valentina.EscapeString("O'Shea", false) -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Fri Aug 6 19:18:49 2004 From: jda at his.com (jda) Date: Fri Aug 6 18:18:55 2004 Subject: ORDER BY Message-ID: In V1.x I could ORDER a cursor by a field I did not select. It seems that this causes an error in V2.0. Is that correct -- it is no longer allowed and you must select the field you ORDER by? And secondly, if so, I think this might be the cause of the "field not found" error I reported earlier -- I was sorting by a method (although the field the method sorted by was in fact selected...). Jon From sunshine at public.kherson.ua Sat Aug 7 08:44:08 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 7 00:44:20 2004 Subject: ORDER BY In-Reply-To: Message-ID: On 8/7/04 2:18 AM, "jda" wrote: Hi Jon, > In V1.x I could ORDER a cursor by a field I did not select. > > It seems that this causes an error in V2.0. Is that correct -- it is > no longer allowed and you must select the field you ORDER by? Hmm, as I remember, on start Valentina 1.x did allow this. Later when GROUP BY was implemented Valentina 1.x also prohibit this. So are you sure that in Valentina 1.10 you could do this ?! And yes. SQL92 do not allow this. Because ORDER BY sorts NEW result table in general case. Because ORDER BY also have syntax ORDER BY 1, 2 To refer fields from SELECT rule. > And secondly, if so, I think this might be the cause of the "field > not found" error I reported earlier -- I was sorting by a method > (although the field the method sorted by was in fact selected...). Ivan, Add Please test SELECT f1, f2 FROM T ORDER BY f3 And check what error is throw, And it seems that error message do not display name "f3" -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From IvanSmahin at public.kherson.ua Sat Aug 7 12:44:32 2004 From: IvanSmahin at public.kherson.ua (Ivan Smahin) Date: Sat Aug 7 04:44:46 2004 Subject: ORDER BY In-Reply-To: References: Message-ID: <1934945002.20040807124432@public.kherson.ua> Hello Ruslan, Saturday, August 7, 2004, 8:44:08 AM, you wrote: RZ> On 8/7/04 2:18 AM, "jda" wrote: RZ> Hi Jon, >> In V1.x I could ORDER a cursor by a field I did not select. >> >> It seems that this causes an error in V2.0. Is that correct -- it is >> no longer allowed and you must select the field you ORDER by? RZ> Hmm, as I remember, on start Valentina 1.x did allow this. RZ> Later when GROUP BY was implemented Valentina 1.x also prohibit this. RZ> So are you sure that in Valentina 1.10 you could do this ?! RZ> And yes. SQL92 do not allow this. RZ> Because ORDER BY sorts NEW result table in general case. RZ> Because ORDER BY also have syntax RZ> ORDER BY 1, 2 RZ> To refer fields from SELECT rule. >> And secondly, if so, I think this might be the cause of the "field >> not found" error I reported earlier -- I was sorting by a method >> (although the field the method sorted by was in fact selected...). RZ> Ivan, RZ> Add Please test RZ> SELECT f1, f2 RZ> FROM T RZ> ORDER BY f3 RZ> And check what error is throw, RZ> And it seems that error message do not display name "f3" Tests are added and passed correctly. 1. SELECT f1, f2 FROM T ORDER BY f3 2. SELECT f1, f2 FROM T ORDER BY 3 Some minor changes have been done in the Node_Select_OrderBy_Elem node and void Node_Select::DoSorting( void ) method. -- Best regards, Ivan mailto:IvanSmahin@public.kherson.ua From sunshine at public.kherson.ua Sat Aug 7 13:20:09 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 7 05:20:15 2004 Subject: ORDER BY In-Reply-To: <1934945002.20040807124432@public.kherson.ua> Message-ID: On 8/7/04 12:44 PM, "Ivan Smahin" wrote: > RZ> Ivan, > > RZ> Add Please test > > RZ> SELECT f1, f2 > RZ> FROM T > RZ> ORDER BY f3 > > RZ> And check what error is throw, > RZ> And it seems that error message do not display name "f3" > > > Tests are added and passed correctly. What means correctly ? Test 1 throw some error ? Right ? > 1. > SELECT f1, f2 > FROM T > ORDER BY f3 > > 2. > SELECT f1, f2 > FROM T > ORDER BY 3 Test 2, must be in the Test_Error_... File I think! > Some minor changes have been done in the Node_Select_OrderBy_Elem node > and void Node_Select::DoSorting( void ) method. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From IvanSmahin at public.kherson.ua Sat Aug 7 13:31:07 2004 From: IvanSmahin at public.kherson.ua (Ivan Smahin) Date: Sat Aug 7 05:31:11 2004 Subject: ORDER BY In-Reply-To: References: <1934945002.20040807124432@public.kherson.ua> Message-ID: <1742693905.20040807133107@public.kherson.ua> Hello Ruslan, Saturday, August 7, 2004, 1:20:09 PM, you wrote: RZ> On 8/7/04 12:44 PM, "Ivan Smahin" RZ> wrote: >> RZ> Ivan, >> >> RZ> Add Please test >> >> RZ> SELECT f1, f2 >> RZ> FROM T >> RZ> ORDER BY f3 >> >> RZ> And check what error is throw, >> RZ> And it seems that error message do not display name "f3" >> >> >> Tests are added and passed correctly. RZ> What means correctly ? RZ> Test 1 throw some error ? RZ> Right ? >> 1. >> SELECT f1, f2 >> FROM T >> ORDER BY f3 >> >> 2. >> SELECT f1, f2 >> FROM T >> ORDER BY 3 RZ> Test 2, must be in the Test_Error_... File RZ> I think! >> Some minor changes have been done in the Node_Select_OrderBy_Elem node >> and void Node_Select::DoSorting( void ) method. Yes, both tests are in the error-tests area. Both tests generate xFieldError exception. -- Best regards, Ivan mailto:IvanSmahin@public.kherson.ua From jda at his.com Sat Aug 7 07:54:32 2004 From: jda at his.com (jda) Date: Sat Aug 7 06:54:38 2004 Subject: ORDER BY In-Reply-To: References: Message-ID: > > >> In V1.x I could ORDER a cursor by a field I did not select. >> >> It seems that this causes an error in V2.0. Is that correct -- it is >> no longer allowed and you must select the field you ORDER by? > >Hmm, as I remember, on start Valentina 1.x did allow this. >Later when GROUP BY was implemented Valentina 1.x also prohibit this. >So are you sure that in Valentina 1.10 you could do this ?! Yes, I have examples where it works in 1.x (I don't ever use GROUP BY, if that matters). > >And yes. SQL92 do not allow this. >Because ORDER BY sorts NEW result table in general case. > >Because ORDER BY also have syntax > > ORDER BY 1, 2 > >To refer fields from SELECT rule. > OK, thanks. Jon From jda at his.com Sat Aug 7 08:04:14 2004 From: jda at his.com (jda) Date: Sat Aug 7 07:04:18 2004 Subject: ORDER BY In-Reply-To: <1742693905.20040807133107@public.kherson.ua> References: <1934945002.20040807124432@public.kherson.ua> <1742693905.20040807133107@public.kherson.ua> Message-ID: > >> 1. >>> SELECT f1, f2 >>> FROM T >>> ORDER BY f3 > >> Hi Ivan, If f3 is a correct method that manipulates data retrieved from f1, does that throw an error, or does that work? Jon From jda at his.com Sat Aug 7 08:36:53 2004 From: jda at his.com (jda) Date: Sat Aug 7 07:37:00 2004 Subject: ORDER BY In-Reply-To: <1742693905.20040807133107@public.kherson.ua> References: <1934945002.20040807124432@public.kherson.ua> <1742693905.20040807133107@public.kherson.ua> Message-ID: > > > >>> 1. >>> SELECT f1, f2 >>> FROM T >>> ORDER BY f3 > >> > > >Yes, both tests are in the error-tests area. >Both tests generate xFieldError exception. > FYI, I just tried this in my project -- the error string does not contain the name of the missing field (f3). Jon From jda at his.com Sat Aug 7 09:17:42 2004 From: jda at his.com (jda) Date: Sat Aug 7 08:17:49 2004 Subject: Error number not set Message-ID: I have set valentina.throwexceptions to false. I then try to create a new record where a unique field is set to a value that already exists. I then check for the errornumber. It is set to 0 (it should be 344). The errorstring is set correctly (kind of): Unique violation for index %U. But the errornumber is empty. Jon From IvanSmahin at public.kherson.ua Sat Aug 7 16:39:27 2004 From: IvanSmahin at public.kherson.ua (Ivan Smahin) Date: Sat Aug 7 08:39:34 2004 Subject: ORDER BY In-Reply-To: References: <1934945002.20040807124432@public.kherson.ua> <1742693905.20040807133107@public.kherson.ua> Message-ID: <7010700508.20040807163927@public.kherson.ua> Hello jda, Saturday, August 7, 2004, 3:04:14 PM, you wrote: >> >> 1. >>>> SELECT f1, f2 >>>> FROM T >>>> ORDER BY f3 >> >> j> Hi Ivan, j> If f3 is a correct method that manipulates data retrieved from f1, j> does that throw an error, or does that work? j> Jon j> _______________________________________________ j> Valentina-beta mailing list j> Valentina-beta@lists.macserve.net j> http://lists.macserve.net/mailman/listinfo/valentina-beta It does not matter what is field you are using. Order By just checks that ordered name is from the select list. Example: select f1 as ff from Table Order By f1 Here is exception due to the SQL standard. Because no field with name f1 in the select list. There is "ff" name. -- Best regards, Ivan mailto:IvanSmahin@public.kherson.ua From sunshine at public.kherson.ua Sat Aug 7 16:40:37 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 7 08:40:41 2004 Subject: Error number not set In-Reply-To: Message-ID: On 8/7/04 4:17 PM, "jda" wrote: Hi Jon, > I have set valentina.throwexceptions to false. I then try to create a > new record where a unique field is set to a value that already > exists. I then check for the errornumber. It is set to 0 (it should > be 344). First of all. Valentina 2.0 uses OTHER error codes that Valentina 1.x. IF you have in your code if( errnumber = 344 ) then This is very bad and must be fixed to use Error constants. Well, it seems I have not yet enable constants in V4RB 2.0. I want generate them automatically from our XML files. > The errorstring is set correctly (kind of): Unique violation for index %U. > > But the errornumber is empty. Interesting. I will test -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From IvanSmahin at public.kherson.ua Sat Aug 7 16:40:43 2004 From: IvanSmahin at public.kherson.ua (Ivan Smahin) Date: Sat Aug 7 08:40:47 2004 Subject: ORDER BY In-Reply-To: References: <1934945002.20040807124432@public.kherson.ua> <1742693905.20040807133107@public.kherson.ua> Message-ID: <1846230042.20040807164043@public.kherson.ua> Hello jda, Saturday, August 7, 2004, 3:04:14 PM, you wrote: >> >> 1. >>>> SELECT f1, f2 >>>> FROM T >>>> ORDER BY f3 >> >> j> Hi Ivan, j> If f3 is a correct method that manipulates data retrieved from f1, j> does that throw an error, or does that work? j> Jon j> _______________________________________________ j> Valentina-beta mailing list j> Valentina-beta@lists.macserve.net j> http://lists.macserve.net/mailman/listinfo/valentina-beta In other words you are ordering the result of query, ever. -- Best regards, Ivan mailto:IvanSmahin@public.kherson.ua From jda at his.com Sat Aug 7 09:55:21 2004 From: jda at his.com (jda) Date: Sat Aug 7 08:55:30 2004 Subject: ORDER BY In-Reply-To: <7010700508.20040807163927@public.kherson.ua> References: <1934945002.20040807124432@public.kherson.ua> <1742693905.20040807133107@public.kherson.ua> <7010700508.20040807163927@public.kherson.ua> Message-ID: > > >It does not matter what is field you are using. >Order By just checks that ordered name is from the select list. > >Example: > >select f1 as ff from Table Order By f1 > >Here is exception due to the SQL standard. Because no field with >name f1 in the select list. >There is "ff" name. > >-- >Best regards, > Ivan mailto:IvanSmahin@public.kherson.ua > OK, Ivan, I see. Then how do this: I have a method for each field so that I can do a case-insensitive sort. The name of the sort method is the name of the field + "SortMethod". For example, to sort Authors, I have a method AuthorsMethod. Here is that method definition: authorsSortMethod = CreateTextField("authorsSortMethod", 128, "English", Valentina.fIndexed, "Upper(authors)") Here is how I have used it in Valentina 1.x: myCursor = myDatabase.SQLSelect("select id,authors,thedate,title,hit from thereferences ORDER BY authorsSortMethod", Valentina.kServerSide, Valentina.kReadOnly) What is the best way of doing this in Valentina 2.0? Thank you, Jon From sunshine at public.kherson.ua Sat Aug 7 17:07:26 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 7 09:07:33 2004 Subject: ORDER BY In-Reply-To: Message-ID: On 8/7/04 4:55 PM, "jda" wrote: > OK, Ivan, I see. Then how do this: > > I have a method for each field so that I can do a case-insensitive > sort. The name of the sort method is the name of the field + > "SortMethod". For example, to sort Authors, I have a method > AuthorsMethod. > > Here is that method definition: > > authorsSortMethod = CreateTextField("authorsSortMethod", 128, > "English", Valentina.fIndexed, "Upper(authors)") > > Here is how I have used it in Valentina 1.x: > > myCursor = myDatabase.SQLSelect("select id,authors,thedate,title,hit > from thereferences ORDER BY authorsSortMethod", > Valentina.kServerSide, Valentina.kReadOnly) > > What is the best way of doing this in Valentina 2.0? 1) you can SELECT AuthorsMethod to be last field, and ignore it in your code 2) MAY BE later we will again allow ORDER BY for not selected field for cases where this is possible. E.g. Single table query, as your. 3) the BEST WAY in 2.0 for your project will be next! * you will REMOVE at all your method fields! * so your table will have not 70 fields as now but 35 fields. You will get the same functionality using new feature Vfield.CollationStrength = ... So be prepared! Your project and tables will become much more simple now. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sat Aug 7 10:11:45 2004 From: jda at his.com (jda) Date: Sat Aug 7 09:11:54 2004 Subject: ORDER BY In-Reply-To: References: Message-ID: > > >3) the BEST WAY in 2.0 for your project will be next! > > * you will REMOVE at all your method fields! > * so your table will have not 70 fields as now but 35 fields. > >You will get the same functionality using new feature > > Vfield.CollationStrength = ... > >So be prepared! >Your project and tables will become much more simple now. > :-> That's the kind of thing I was hoping to hear! Jon From sunshine at public.kherson.ua Sat Aug 7 17:18:13 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 7 09:18:21 2004 Subject: Request for new fields (V4RB) In-Reply-To: Message-ID: On 8/7/04 4:22 PM, "Scott Steinman" wrote: Hi Scott, > I've just returned from the world of Java to REALbasic. I'm ready to > start a new project that could use Valentina. It could be great if you could wait just a little and start with Valentina 2.0. Or start right now with Valentina 1.x but in the nearest time switch to 2.0. I recommend you go to our support page and subscribe to Valentina beta list. You will be able then review V4RB 2.0 beta. It have many new cool features. > After refreshing my > memory by reading the manuals, I realized that the REALbasic version of > Valentina could use a couple of improvements: > 1. Databases could contain movies. Rather than having the programmer > need to convert a movie to a String to store it in a VBLOB (and convert > it back upon retrieval), I'd like to have a specialized VMovie field > type (as you have with VPicture) to V4RB that would handle the > conversion for the programmer? To make it cross-platform, the internal > representation could be QuickTime since it's available for both Mac and > Windows. Well, I see. > 2. Why should VPictures be limited to PICT file format on the Mac and > DIB on Windows when they are both stored with JPG compression in the > database? Why not just make VPictures cross-platform by allowing the > input and output of JPGs? Igor have spend last 3 weeks to incredibly improve Vpicture field! Especially for Director. Subscribe to beta list, when I will see that, I will forward today's Igor letter to beta list. In short, Now VBLOB and Vpicture have functions blob.LoadFile( path ) blob.UnloadFile( path ) Also with Picture class you can simply READ and WRTIE an existed JPG, GIF, TIFF as is. Without any compression on Valentina side. --------- Next, yes, in the nearest time, I will improve VBLOB field in the V4RB to work not with String only but with MemBuff. -------- Scott, also I wonder, why you wonder about PICT/DIB. When Valentina extract picture from db it MUST give to REALbasic or Director a PICT/DIB. REALbasic do not want to get from us JPG. You see? How you image to self that Vpicture return TO YOU a jpg ? ------------ Using VBLOB.LoadFile() you have no more easy way to store into db movies. And you can extract ONE movie to disk to play it, then erase. Yes, it will be more cool to have MOVIE field, which self establish stream to Quicktime and load movie by small parts during playback. We will not be able do this in Valentina 2.0. No time. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sun Aug 8 10:17:22 2004 From: jda at his.com (jda) Date: Sun Aug 8 09:17:30 2004 Subject: Dealing with 1.x databases Message-ID: Hi Ruslan, One question, one problem. 1. When I open a 1.x database with my 2.x project I get a -39 error (end-of-file). I can trap for that and give an error message, etc. But a -39 error can occur for other reasons (like a corrupted db). Will this error be changed to something more specific to Valentina (like a VError of 'version too old', or something like that)? 2. I trap for this error and back out gracefully. But when I try to open another database afterwards (even a good, 2.x version) Valentina immediately crashes on the line myDatabase = new myDatabaseClass There is no crash log generated by the system. And I don't see anything written to the Valentina log, either. Jon From sunshine at public.kherson.ua Sun Aug 8 19:08:44 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 8 11:08:52 2004 Subject: Dealing with 1.x databases In-Reply-To: Message-ID: On 8/8/04 5:17 PM, "jda" wrote: Hi Jon, > One question, one problem. > > 1. When I open a 1.x database with my 2.x project I get a -39 error > (end-of-file). I can trap for that and give an error message, etc. > But a -39 error can occur for other reasons (like a corrupted db). > Will this error be changed to something more specific to Valentina > (like a VError of 'version too old', or something like that)? Well, yes we must throw error here. > 2. I trap for this error and back out gracefully. But when I try to > open another database afterwards (even a good, 2.x version) Valentina > immediately crashes on the line > > myDatabase = new myDatabaseClass > > There is no crash log generated by the system. And I don't see > anything written to the Valentina log, either. Ok. In first turn above error should be fixed. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From bwillius at gmx.de Mon Aug 9 09:52:04 2004 From: bwillius at gmx.de (Beatrix Willius) Date: Mon Aug 9 02:54:37 2004 Subject: (no subject) Message-ID: <0146C92B-E9D9-11D8-9702-000A958D2BA4@gmx.de> Hello, perhaps a stupid question: where do I install the VEngine folder in Mac OS X for V4RB? I could not find anything on the location of this folder in the archives. Thanks in advance for your help. Mit freundlichen Gr??en/Regards Trixi Willius http://www.mothsoftware.com Mail Archiver X: archive, clean and search email http://www.beatrixwillius.de Fractals, 3d landscapes etc. From sunshine at public.kherson.ua Mon Aug 9 11:06:26 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 9 03:08:02 2004 Subject: (no subject) In-Reply-To: <0146C92B-E9D9-11D8-9702-000A958D2BA4@gmx.de> Message-ID: On 8/9/04 10:52 AM, "Beatrix Willius" wrote: Hi Beatrix, > perhaps a stupid question: where do I install the VEngine folder in Mac > OS X for V4RB? I could not find anything on the location of this folder > in the archives. You need COPY file(s) fropm that folder into Vcomponents folder > Thanks in advance for your help. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Tue Aug 10 00:58:22 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 9 16:58:39 2004 Subject: I was just talking to the boys upstairs and He says... In-Reply-To: <49E741BC-EA41-11D8-8786-0003935B6750@comcast.net> Message-ID: On 8/9/04 11:18 PM, "Brendan Murphy" wrote: > Why can't we just have a single database without all the hassle > of those cumbersome extra files version 2.0. they seem totally > unnecessary. I just want a database that works and is solid. > One file one database. Hi Brendan, I have CC this to Valentina beta list, and I think your question is for beta list, right? It seems we already have discuss this few weeks ago. You can answer to that boy: 1) any modern COMPLEX product is built on component architecture. This is why was born COM and CORBA. 2) in complex projects (and Valentina 2.0 is VERY complex project I should say, it have more than 1000 files) Developers use component architecture on many important reasons. * in project can be used THIRD PARTY SDKs, tools, ... and it will be unreasonably hard tune that SDKs to be compiled in OTHER way than original developers have made. For example, we use IBM ICU library for unicode. this library Is even more complex that Valentina 2.0 itself. IBM guys have made it as 3-4 DLLs. I hope you won't ask that Paradigma Software have tune IBM's SDK to make it as LIBs. This is possible I think, but may take a lots of time. * second reason for component architecture is that components are INDEPENDENT parts of engine. This means that we can do TEAM development. This is VERY VERY STRONG REASON. Design of Valentina 1.x was good for single developer, but we have meet problems trying to work in team with Valentina 1.x. This is why we have re-write from scratch Valentina using modern new design. By my estimates, in ONE YEAR our team have made project by size 5-10 developers-years. * COMPONENT architecture allows for third party developers develop/distribute/sale plugins for Valentina engine itself. Is this good? IMHO this is great! Brendan, image that REALbasic will not support plugin system. you an tell me that REALbasic still pack all in on exe file. well, as far as I know, only REALbasic do this. Director, Revolution, ... DON?T. * COMPONENT architecture allows at last of end, to YOU as Valentina developer use only that components which are required in your application. Our target is that e.g. * if you do not want picture in your db, simply remove few DLLS that can be 500-1000KB. * if you do not want SQL, but only Navigational Database model, remove VSQL.dll and size of engine will be reduced in 2 times. This is not implemented, but this is our target. Now look what you want suggest: IBM ICU DLLs about 5MB total. IBM .dat file 3-8MB Pictures 500KB Vengine 3.5MB If we will link all this into single file, we easy come to 10-15MB. For single platform. I think this is not good. Not flexible. * Another advantage of components. As I have told the fact that in V4RB 2.0 engine is REMOVED from plugin itself, we can easy and effectively provide you 2 versions of V4RB/V4MD plugin: DEBUG and RELEASE. DEBUG version will have A LOTS and AS MANY AS POSSIBLE different debug checks, log files, and so on. RELEASE will be compiled absolutely without this code, so it will have ZERO overhead. ---------- And again. We will be able provide you way that you -- DEVELOPER, Will give to your clients _single_file_ application (on MAC). MyGreatApplication Yes, yes, yes. Using packages. This is modern and standard of Apple We already have told about this: open your folder "Applications". and check such apps as iTunes, iDVD. They looks as SNGLE file. Users are happy. But open package. Here a lots of files. So why Valentina must not go by this way ????????????????? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From rjb at robelko.com Tue Aug 10 16:01:12 2004 From: rjb at robelko.com (Robert Brenstein) Date: Tue Aug 10 09:14:50 2004 Subject: Dealing with 1.x databases In-Reply-To: References: Message-ID: >On 8/8/04 5:17 PM, "jda" wrote: > >Hi Jon, > >> One question, one problem. >> >> 1. When I open a 1.x database with my 2.x project I get a -39 error >> (end-of-file). I can trap for that and give an error message, etc. >> But a -39 error can occur for other reasons (like a corrupted db). >> Will this error be changed to something more specific to Valentina >> (like a VError of 'version too old', or something like that)? > >Well, yes we must throw error here. > What ever happened to implementing GetFileVersion function in 1.10? This was last discussed when version 1.9 came out if I recall. We should be able to inspect version number and determine whether it is valid or not. Robert From sunshine at public.kherson.ua Tue Aug 10 17:18:11 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Tue Aug 10 09:18:21 2004 Subject: Dealing with 1.x databases // GetFileVersion() In-Reply-To: Message-ID: On 8/10/04 5:01 PM, "Robert Brenstein" wrote: > What ever happened to implementing GetFileVersion function in 1.10? > This was last discussed when version 1.9 came out if I recall. We > should be able to inspect version number and determine whether it is > valid or not. Robert, It is time to remind us ANY features you have dream. Yes we will add GetFileVersion() Also I remember you have had ideas about Encryption API. We have not come to encryption yet. So soon we will ask you, If you have time you can write specification of your dream :-) -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From valentina-list at vermontsoftworks.com Wed Aug 11 10:42:20 2004 From: valentina-list at vermontsoftworks.com (Erik Mueller-Harder) Date: Wed Aug 11 09:42:28 2004 Subject: [V4RB] Binary link error Message-ID: Hi, Ruslan -- I'm experimenting with binary links in V4RB. I've created two tables: tblAdmin and tblAffiliation. I'm attempting to link them 1:1 with the following code: ========== Dim vl as VLink if link("linkAffiliationAdmin") = nil then try vl = CreateBinaryLink("linkAffiliationAdmin", tblAdmin, tblAffiliation, valentina.kOne, valentina.kOne) catch vExc Except(vExc, "Unable to create Affiliation/Admin link.") end try end if =========== This gives me error #339968: "Insuffucuent resources." Any ideas? Oh, and FYI, it should be "Insufficient," not "Insuffucuent." Many thanks, -- Erik From sunshine at public.kherson.ua Wed Aug 11 18:07:21 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 11 10:07:39 2004 Subject: [V4RB] Binary link error In-Reply-To: Message-ID: On 8/11/04 5:42 PM, "Erik Mueller-Harder" wrote: Hi Erik, > I'm experimenting with binary links in V4RB. > > I've created two tables: tblAdmin and tblAffiliation. I'm attempting > to link them 1:1 with the following code: > > ========== > Dim vl as VLink > > if link("linkAffiliationAdmin") = nil then > try > vl = CreateBinaryLink("linkAffiliationAdmin", tblAdmin, > tblAffiliation, valentina.kOne, valentina.kOne) > catch vExc > Except(vExc, "Unable to create Affiliation/Admin link.") > end try > end if > =========== > > This gives me error #339968: "Insuffucuent resources." > Any ideas? Can you send project ? > Oh, and FYI, it should be "Insufficient," not > "Insuffucuent." Ivan, please correct in XML file -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Wed Aug 11 21:11:48 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 11 13:12:47 2004 Subject: [V4RB] Binary link error In-Reply-To: <7CCD5950-EBAC-11D8-98CF-000393DC4766@vermontsoftworks.com> Message-ID: On 8/11/04 6:38 PM, "Erik Mueller-Harder" wrote: >>> I'm experimenting with binary links in V4RB. >>> >>> I've created two tables: tblAdmin and tblAffiliation. I'm attempting >>> to link them 1:1 with the following code: >>> >>> ========== >>> Dim vl as VLink >>> >>> if link("linkAffiliationAdmin") = nil then >>> try >>> vl = CreateBinaryLink("linkAffiliationAdmin", tblAdmin, >>> tblAffiliation, valentina.kOne, valentina.kOne) >>> catch vExc >>> Except(vExc, "Unable to create Affiliation/Admin link.") >>> end try >>> end if >>> =========== >>> >>> This gives me error #339968: "Insuffucuent resources." >>> Any ideas? >> >> Can you send project ? > > Here you go! Okay, I see where is problem. You try to work via Classes way, i.e. Static way. You create tables and link BEFORE you have do db.Create() Right now primary our tests targeted to DYNAMIC way, I.e. Db is opened and we tell it create/drop objects. Classes way is more hard, and not all parts work yet. So you can try to use BinaryLink without classes. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From valentina-list at vermontsoftworks.com Wed Aug 11 16:37:15 2004 From: valentina-list at vermontsoftworks.com (Erik Mueller-Harder) Date: Wed Aug 11 15:37:23 2004 Subject: [V4RB] Binary link error In-Reply-To: References: Message-ID: <3B4DF6B0-EBD6-11D8-98CF-000393DC4766@vermontsoftworks.com> Hi, Ruslan -- On Aug 11, 2004, at 14:11, Ruslan Zasukhin wrote: > Okay, I see where is problem. > > You try to work via Classes way, i.e. Static way. > You create tables and link BEFORE you have do db.Create() > > Right now primary our tests targeted to DYNAMIC way, > I.e. Db is opened and we tell it create/drop objects. > > Classes way is more hard, and not all parts work yet. > > So you can try to use BinaryLink without classes. I'd like to, but I don't see yet how to get a persistent database with your dynamic method. There are many examples of dynamically creating and dropping tables, but I haven't been able to find any example that shows how to open an existing database with this dynamic API. I love the idea of dropping the objectptr fields -- and, even more, of dropping my many-to-many link tables. My new database would have about a dozen 1:M relations as well as another dozen or so M:M join tables, and it would be GREAT to replace these with direct binary links at the database level. So will there be -- or is there now -- a way to get this persistence via your new API? Or should I stick with the older class method? And, if I need to stick with the class approach, will your new binary links work with it? Thanks for any clarification you can give! -- Erik From sunshine at public.kherson.ua Wed Aug 11 23:52:15 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 11 15:52:23 2004 Subject: [V4RB] Binary link error In-Reply-To: <3B4DF6B0-EBD6-11D8-98CF-000393DC4766@vermontsoftworks.com> Message-ID: On 8/11/04 11:37 PM, "Erik Mueller-Harder" wrote: > Hi, Ruslan -- > > On Aug 11, 2004, at 14:11, Ruslan Zasukhin wrote: > >> Okay, I see where is problem. >> >> You try to work via Classes way, i.e. Static way. >> You create tables and link BEFORE you have do db.Create() >> >> Right now primary our tests targeted to DYNAMIC way, >> I.e. Db is opened and we tell it create/drop objects. >> >> Classes way is more hard, and not all parts work yet. >> >> So you can try to use BinaryLink without classes. > > I'd like to, but I don't see yet how to get a persistent database with > your dynamic method. There are many examples of dynamically creating > and dropping tables, but I haven't been able to find any example that > shows how to open an existing database with this dynamic API. Hmm, very simple dim db as Vdatabase db.Open() Now you can do tbl = db.Table( "name" ) fld = tbl.Field( "fieldname" ) The same was in 1.x Just no classes. > I love the idea of dropping the objectptr fields -- and, even more, of > dropping my many-to-many link tables. My new database would have about > a dozen 1:M relations as well as another dozen or so M:M join tables, > and it would be GREAT to replace these with direct binary links at the > database level. Absolutely right. Here few benefits 1) binary link will be more effective and eat less disk space than M:M ink table. 2) design of structure become more natural. Tables (objects) do not have intrusived pointers to OTHER tables. Right now as Relational model, so ObjectPtr fields, require from you CHANGES of some Table if you add/remove link. Using Binary Link, we have STABLE and CLEAN definition of tables!!! I think this is the biggest advantage of Binary Link, > So will there be -- or is there now -- a way to get this persistence > via your new API? Or should I stick with the older class method? And, > if I need to stick with the class approach, will your new binary links > work with it? > > Thanks for any clarification you can give! Yes, of course I must make that YOUR example with classes way will work. I will try to fix this on this week, -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 12 00:04:00 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 11 16:04:06 2004 Subject: V4RB*NEW* Properties to control Locale, Encoding, Sorting Message-ID: Hi All, Right now I work on implementation of the next new methods Class Vdatabase, Vtable and Vstring/VarChar/VText Will get next 3 properties Locale as String Encoding as String CollactionStrnegth as Integer The game start in database. * when we create database it get on default system settings, Or we can set what we want. * when we create table, it inherit settings from db. * the same for field, it inherit it from table. So if you want to use the same settings for the whole db, you simply specify them for db. And do not care for fields. You can have some table(s)/field(s) with other settings. Settings of course are stored in the system tables. Example: Locale: "en_US", "en_GB", Encoding: "UTF-16", "UTF8", "Western MacOS Roman", Latin-1, Cyrillic(Windows), Windows-1251, .. Strength: /** * Base letter represents a primary difference. Set comparison level to * PRIMARY to ignore secondary and tertiary differences.
* Use this to set the strength of a Collator object.
* Example of primary difference, "abc" < "abd" * * Diacritical differences on the same base letter represent a secondary * difference. Set comparison level to SECONDARY to ignore tertiary * differences. Use this to set the strength of a Collator object.
* Example of secondary difference, "?" >> "a". * * Uppercase and lowercase versions of the same character represents a * tertiary difference. Set comparison level to TERTIARY to include all * comparison differences. Use this to set the strength of a Collator * object.
* Example of tertiary difference, "abc" "ABC". * * Two characters are considered "identical" when they have the * same unicode * spellings.
* For example, "?" == "?". * * UCollationStrength is also used to determine the strength of sort keys * generated from Collator objects. * @stable ICU 2.0 */ enum ECollationStrength { PRIMARY = 0, SECONDARY = 1, TERTIARY = 2, QUATERNARY = 3, IDENTICAL = 15 }; -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Wed Aug 11 17:14:43 2004 From: jda at his.com (jda) Date: Wed Aug 11 16:15:03 2004 Subject: V4RB*NEW* Properties to control Locale, Encoding, Sorting In-Reply-To: References: Message-ID: > > /** > * Base letter represents a primary difference. Set comparison level to > * PRIMARY to ignore secondary and tertiary differences.
> * Use this to set the strength of a Collator object.
> * Example of primary difference, "abc" < "abd" > * > * Diacritical differences on the same base letter represent a secondary > * difference. Set comparison level to SECONDARY to ignore tertiary > * differences. Use this to set the strength of a Collator object.
> * Example of secondary difference, "?" >> "a". > * > * Uppercase and lowercase versions of the same character represents a > * tertiary difference. Set comparison level to TERTIARY to include all > * comparison differences. Use this to set the strength of a Collator > * object.
> * Example of tertiary difference, "abc" "ABC". > * > * Two characters are considered "identical" when they have the > * same unicode > * spellings.
> * For example, "?" == "?". > * So if I want to ignore case but I want to consider accents (a <> ?) I would set the strength to secondary? And if I wanted to ignore accents, too, I would set it to...tertiary? Jon From sunshine at public.kherson.ua Thu Aug 12 10:07:26 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 12 02:07:37 2004 Subject: V4RB*NEW* Properties to control Locale, Encoding, Sorting In-Reply-To: Message-ID: On 8/12/04 12:14 AM, "jda" wrote: >> >> /** >> * Base letter represents a primary difference. Set comparison level to >> * PRIMARY to ignore secondary and tertiary differences.
>> * Use this to set the strength of a Collator object.
>> * Example of primary difference, "abc" < "abd" >> * >> * Diacritical differences on the same base letter represent a secondary >> * difference. Set comparison level to SECONDARY to ignore tertiary >> * differences. Use this to set the strength of a Collator object.
>> * Example of secondary difference, "?" >> "a". >> * >> * Uppercase and lowercase versions of the same character represents a >> * tertiary difference. Set comparison level to TERTIARY to include all >> * comparison differences. Use this to set the strength of a Collator >> * object.
>> * Example of tertiary difference, "abc" "ABC". >> * >> * Two characters are considered "identical" when they have the >> * same unicode >> * spellings.
>> * For example, "?" == "?". >> * > > So if I want to ignore case but I want to > consider accents (a <> ?) I would set the > strength to secondary? > > And if I wanted to ignore accents, too, I would set it to...tertiary? No, here reverse logic. I also have catch not from start. tertiary -- this is like in Valentina 1.x. aaa <> AAA aaa <> ?aa upper(aaa) => AAA upper(?aa) => ?AA SECONDARY -- ignores difference between Diacritical chars i.e. Secondary difference of chars. aaa <> AAA aaa == ?aa upper(aaa) => AAA upper(?aa) => AAA PRIMARY -- ignores difference between case of chars i.e. Ignore primary difference of chars. aaa == AAA aaa == ?aa upper(aaa) => AAA upper(?aa) => AAA -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Thu Aug 12 08:59:02 2004 From: jda at his.com (jda) Date: Thu Aug 12 07:59:11 2004 Subject: V4RB*NEW* Properties to control Locale, Encoding, Sorting In-Reply-To: References: Message-ID: > > >No, here reverse logic. >I also have catch not from start. > > tertiary -- this is like in Valentina 1.x. > aaa <> AAA > aaa <> ?aa > > upper(aaa) => AAA > upper(?aa) => ?AA > > > SECONDARY -- ignores difference between Diacritical chars > i.e. Secondary difference of chars. > > aaa <> AAA > aaa == ?aa > > upper(aaa) => AAA > upper(?aa) => AAA > > PRIMARY -- ignores difference between case of chars > i.e. Ignore primary difference of chars. > > aaa == AAA > aaa == ?aa > > upper(aaa) => AAA > upper(?aa) => AAA > > > OK. And if I want case ignored but diacriticals considered? What then? Jon From sunshine at public.kherson.ua Thu Aug 12 16:07:02 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 12 08:07:12 2004 Subject: V4RB*NEW* Properties to control Locale, Encoding, Sorting In-Reply-To: Message-ID: On 8/12/04 3:59 PM, "jda" wrote: >> No, here reverse logic. >> I also have catch not from start. >> >> tertiary -- this is like in Valentina 1.x. >> aaa <> AAA >> aaa <> ?aa >> >> upper(aaa) => AAA >> upper(?aa) => ?AA >> >> >> SECONDARY -- ignores difference between Diacritical chars >> i.e. Secondary difference of chars. >> >> aaa <> AAA >> aaa == ?aa >> >> upper(aaa) => AAA >> upper(?aa) => AAA >> >> PRIMARY -- ignores difference between case of chars >> i.e. Ignore primary difference of chars. >> >> aaa == AAA >> aaa == ?aa >> >> upper(aaa) => AAA >> upper(?aa) => AAA >> >> >> > > OK. And if I want case ignored but diacriticals considered? What then? Hmm, intresting. I don't know. I have CC this question to ICU list. Anybody know answer? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 12 20:36:34 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 12 12:36:46 2004 Subject: FW: V4RB*NEW* Properties to control Locale, Encoding, Sorting In-Reply-To: <411B96FD.2080501@jtcsv.com> Message-ID: Well, Jon, It seems I self still not understand its rules completely. I think we will play with different settings, And will see how it works. ------ Forwarded Message From: Markus Scherer Organization: IBM Date: Thu, 12 Aug 2004 09:12:45 -0700 To: Ruslan Zasukhin Cc: valentina-beta@lists.macserve.net, icu4c-support@oss.software.ibm.com Subject: Re: V4RB*NEW* Properties to control Locale, Encoding, Sorting Ruslan Zasukhin wrote: > On 8/12/04 3:59 PM, "jda" wrote: >>OK. And if I want case ignored but diacriticals considered? What then? You use secondary strength. Tertiary considers base/diacritic/case differences but ignores lower-level ones. Secondary considers base/diacritic differences but ignores case and other lower-lever ones. Primary considers base but ignores diacritics/case etc. Please see http://oss.software.ibm.com/icu/userguide/Collate_Intro.html and related chapters. Demo (in our Locale Explorer): http://oss.software.ibm.com/cgi-bin/icu/lx/en_US/?_=ru_UA&d_=en_US&x=col ------ End of Forwarded Message From sunshine at public.kherson.ua Thu Aug 12 21:07:03 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 12 13:07:13 2004 Subject: V4RB:NEW VBLOB .FromFile() / ToFile() Message-ID: Added 2 new methods. VBLOB.FromFile( location as FolderItem ) VBLOB.ToFile( location as FolderItem ) This function allow you easy LOAD/UNLOAD disk file into BLOB record. It store only content of file. But not its name and path. Because usually you will want unload file on other computer into other location. I think it will be reasonable always use in pair a String field, that will contain NAME of that file (may be partial path.) LIMITS: * not store resource fork of MacOS file * not store yet additional info (flags, creator/type, ...) -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Thu Aug 12 21:07:57 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 12 13:08:03 2004 Subject: V4MD*NEW* ToFile() / FromFile() Message-ID: Similar to V4RB these methods was added into V4MD. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 13 08:14:20 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 13 00:14:35 2004 Subject: [V4MD] Not exporting ASCII chars in Text fields on XML export In-Reply-To: <411BF04F.5080207@monumental-i.com> Message-ID: On 8/13/04 1:33 AM, "Daniel Crowder" wrote: Hi Daniel, > I'm sure I'm doing something stupid - but I when I export my database as > XML my text fields show-up as all ASCII chars. I would like them to not > be translated into ASCII chars. I changed the field language setting to > "English" and still no go. Any suggestions? > > - <#> > 1 > 20 > 1someproduct > 48 65 72 65 20 69 73 20 61 6E 6F 74 68 65 72 20 > 77 6F 6E 64 65 72 66 75 6C 20 43 6F 6F 70 65 72 20 70 72 6F 64 75 63 74 > 34 34 34 > Valentina dump in an XML file any BLOB field as HEX values. For regular BLOB this is required. There is no way express BLOB value and pictures into text form. But for TEXT field, yes, we can also dump readable chars.... Just nobody have complain on this yet. Aha, I remember why I did not use chars. Look. TEXT field can contains multi-line text value. I.e. We can have many new lines. So text file can looks as ------------------ Aha, I remember why I did not use chars. Look. TEXT field can contains multi-line text value. I.e. We can have many new lines. So text file can looks as ------------------ Hmm, well, not so bad... Okay, I think in Valentina 2.0 we can change this behavior. Btw, Daniel, "*description*" -- this is name of field? Not good. You should start names from letter or digit or _ Valentina 2.0 will complain on such bad names. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 13 16:52:38 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 13 08:53:47 2004 Subject: FW: [NEW:V4MD] Symbols handling In-Reply-To: <004101c48119$498b7be0$3b04a8c0@giv> Message-ID: > > Symbols support added in V4MD so now users will > be able to use named constants (symbols) - like #kServer - instead of > meaningless number 2. > > Also kernel errors now expressed as symblos too. > So instead of testing for meaningless error code like > > if ValentinaError() = 2 then > ... > end if > > users can now write > > if ValentinaErrorIs(#ERR_OS_FILE_NOT_FOUND) then > ... > end if This is just great! > (I do not remember whether mapping system errors into Valentina errors > was already done but we can already use such syntax). Some OS errors was wrapped by our codes, but still there is work here. > Also one more new function added to get last error symbol: > ValentinaErrorSymbol() > Currently this function returns error symbol as string. > (I cannot force it to return symbol - I've asked about this > on the Macromedia list). ok > But now we can also write: > > ValentinaInit("", 8 * 1024 * 1024, "", "") > > set err = ValentinaErrorSymbol() > if( symbol(err) = #ERR_SUCCESS ) then > alert("OK") > end if > > and this works. Igor, first of all we must find solution to return symbols. Above example is not good, because it have different syntax. > May be we need to choose only one syntax form to use in V4MD? > I mean choose between > ValentinaErrorSymbol() (this comes to my mind later) > and > ValentinaErrorIs()? Yes, if we will be able return symbols then I prefer Valentina.DoSomething() if( ValentinaError() != #ERR_SUCCESS ) Interesting, can 2 Xtras in the same project conflict if they use the same symbol? Please ask on Xtra list. > As for me first form is more native and it has advantage over > second form: if user wrote #ERR_SACCESS (instead of #ERR_SUCCESS) > he/she easily can see this in the debugger and correct the code. > With second form he/she cannot do this. > From sunshine at public.kherson.ua Fri Aug 13 16:59:28 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 13 09:06:54 2004 Subject: [NEW:V4MD] Symbols handling In-Reply-To: <005601c4811c$265b1fb0$3b04a8c0@giv> Message-ID: On 8/13/04 12:58 PM, "Igor Gomon" wrote: >> But already now we can also write: >> >> ValentinaInit("", 8 * 1024 * 1024, "", "") >> >> set err = ValentinaErrorSymbol() >> if( symbol(err) = #ERR_SUCCESS ) then >> alert("OK") >> end if >> >> and this works. > We can make simple workaround to make it work: > > on ValErrorSymbol > return symbol(ValentinaErrorSymbol()) > end > > on startMovie > > ValentinaInit("", 8 * 1024 * 1024, "", "") > > if ValErrorSymbol() = #ERR_SUCCESS then > alert("OK") > end if > > end startMovie Okay, this looks better. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 13 20:30:44 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 13 12:30:52 2004 Subject: Changing character sets in text fields In-Reply-To: Message-ID: On 8/13/04 7:38 PM, "Ben Rubinstein" wrote: Hi Ben, >> Again, in Valentina 2.0 we will have much more ways to control this. >> BTW, now I got idea: >> We will make 3 parameters for this >> >> db.StorageEncoding >> db.InputEncoding >> db.OutputEncoding >> >> Will be supported 170 encodings of the world. > > Will this allow an option which effectively means "I'm putting a stream of > octets in, I'd like to get the same octets out, regardless of the platform I > stored on or the platform I retrieved on"? This letter CC'd to beta list. Let me describe how I see it. Correct me if I am wrong somewhere. Add own ideas! 1) I believe that all new databases (using Valentina 2.0) must have db.StorageEncoding as UTF-16 (in the first turn Japan, Korea, ..) or UTF8 (Western languages, Cyrillic, ...) Valentina 2.0 will allow also specify to keep files on disk in e,g, Cyrillic WIN (1251) Cyrillic (KOI-8) Mac Western Latin-1 ... But I do not see any strong reason for developers to do this. Better to use Unicode. 2) db.InputEncoding and db.OutPutEncoding * They also can be on default UTF-16 or UTF-8. i.e. Developer can simply say: I work with UTF16 or UTF8 and that is all. any headache. * Developer can specify here, (and I think few years yet this may be widely used) some other encoding. For example: I want store info in db files UTF8 encoding, but I want do I/o using Latin-1. Or I want Input in Latin-1 but output in Mac Western In this case it will work as next, input in Latin1 output in Mac Western ------------> + -----------------> | | +---------------+ | Vengine use | | always UTF16 | +---------------+ ^ | | disk file (UTF8) As input/output I mean such functions as fld.SetString( "asdfa" ) // Latin1 s = fld.GetString() // Mac Western I think I talk now mainly about C++ SDK. Because e.g. REALbasic developers now mainly get/set strings in UTF8. Director MX give to Valentina MacWestern and Latin-1 __always__. I think above is the most flexible way. Anybody see what else here can be made as option ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Fri Aug 13 23:18:11 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 13 15:18:22 2004 Subject: [NEW:V4MD] Symbols handling In-Reply-To: <022301c4816a$c8a68810$3b04a8c0@giv> Message-ID: On 8/13/04 10:21 PM, "Igor Gomon" wrote: >> We can make simple workaround to make it work: >> >> on ValErrorSymbol >> return symbol(ValentinaErrorSymbol()) >> end > There is no need in this already. > I've found error in my code (not without help from Glenn ;-) > So now this code works fine: > > on startMovie > ValentinaInit("", 8 * 1024 * 1024, "", "") > > if ValentinaErrorSymbol() = #ERR_SUCCESS then > alert("OK") > end if > end startMovie > > I think that we then do not need ValentinaErrorIs() function so > I'll delete it. Ok, Igor. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Wed Aug 18 13:18:08 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Wed Aug 18 10:40:04 2004 Subject: [V4MD:DONE] Valentina Xtra Message-ID: Hi team, I've done with Valentina Xtra. So now this Lingo code is working: global Valentina on startMovie global Valentina set Valentina = Xtra "Valentina" if (objectP(Valentina)) then Valentina.initialize("", 8 * 1024 * 1024, "", "") if( Valentina.getLastErrorSymbol() <> #ERR_SUCCESS ) then alert("Something wrong there!") end if Valentina.shutDown() end if end startMovie This is the whole message table for Valentina Xtra: ++++++++++++++++++++++++++++++++++++++++++++++ "xtra Valentina\n" \ "new object me\n" /* standard first handler entry in all message tables */ "+initialize object me, string componentsPath, integer cacheSize, string macSerial, string winSerial \n" "+shutDown object me -- Closes all opened databases and destroys cache\n" "+getVersion object me -- Returns the version of the database engine. \n" "+getCacheSize object me -- Returns the size of the cache. \n" "+getLastError object me -- Returns error code of last Valentina method.\n" "+getLastErrorString object me -- Returns error string of last Valentina method.\n" "+getLastErrorSymbol object me -- Returns error as a symbol. \n" "+setDebugLevel object me, integer Level, *-- integer UseMsgWindow.\n" " -- Sets debug level for V4MD (0-no debug, 1-errors only, 2-functions).\n" "+getDebugLevel object me -- Returns the debug level for V4MD. \n" "+logToMsgWindow object me, integer on -- Enables or disables logging to the Message Window. \n" "+logToFile object me, integer on, integer flush -- Enables or disables logging to the file.\n " " -- If on <> 0 creates 'V4MD_Log.txt' file and logs messages to it. \n" " -- If flush = 1 then does flush after each log. \n" "+setExtensions object me * -- List of extensions, e.g [\"vdb\",\"dat\",\"ind\",\"blb\"].\n" "+escapeString object me, string str, integer forRegEx -- Escapes given string. Set forRegEx to 1 if str is a RegEx expression.\n" ++++++++++++++++++++++++++++++++++++++++++++++ As you can see all the method are 'parent' (same as static in C++) So we do not need to create any instances of this Xtra - it is available globally in any movie. P.S. Now I'm moving all baseobject methods into VTable Xtra but I'm not finished with this yet. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From giv at tlc.kherson.ua Wed Aug 18 18:14:33 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Wed Aug 18 10:40:11 2004 Subject: [V4MD:DONE] VTable Xtra Message-ID: This is the methods table for VTable Xtra: "xtra VTable\n" \ "new object me\n" /* standard first handler entry in all message tables */ "+createField object xtraRef, integer boRef, string fldName, symbol fldType, * -- Adds a new field to existing table, returns fldRef.\n" "+dropField object xtraRef, integer boRef, any fldNameOrIndex -- Removes a field from the table.\n" "+getFieldCount object xtraRef, integer boRef -- Returns count of fields in the table.\n" "+getFieldRef object xtraRef,integer boRef,any fldNameOrIndex -- Returns reference of a Table field.\n" "+getName object xtraRef, integer boIndex -- Returns name of Nth table as string.\n" "+changeName object xtraRef, integer boRef, string newName -- Changes name of Table.\n" "+setEncryption object xtraRef, integer boRef, string key -- Must be called before Open().\n" "+changeEncryption object xtraRef, integer boRef, string oldKey, string newKey -- Change encryption key for the table.\n" -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From sunshine at public.kherson.ua Wed Aug 18 18:42:29 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 18 10:42:35 2004 Subject: [V4MD:DONE] VTable Xtra In-Reply-To: <010e01c48536$6b04ee70$3b04a8c0@giv> Message-ID: On 8/18/04 6:17 PM, "Igor Gomon" wrote: > Ruslan, I think that we can add many new methods to the VTable Xtra > (many of those from I_Table interface). > Do you? Yes Igor!!!!!!!!!! That?s the point! Having this *_NEW_* design of V4MD we can easy provide all features and functions that we have in e.g. V4RB. This is really great! At last of end, I think exists Director developers which also want full control on Valentina engine and which are ready to do this. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Wed Aug 18 18:58:14 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 18 10:58:24 2004 Subject: V4RB... u_strToUpper() // MacOS X ICU In-Reply-To: Message-ID: On 8/17/04 10:07 PM, "Deborah Goldsmith" wrote: Hi Deborah, > Ram already answered the question about stability of the data file; > I'll answer the rest. > > Apple currently does not make ICU's API available as part of our public > APIs because -- until recently -- there has not been a good mechanism > for controlling which APIs get published. ICU includes both C and C++ > APIs, and these are further categorized as draft, stable, or obsolete. > > Apple does not make APIs public that we cannot guarantee will remain > binary compatible going forward. Given our C++ runtime (and nearly all > other C++ runtimes), this is impossible for C++. In addition, the ICU > draft APIs may change and therefore do not guarantee binary > compatibility. Without careful control of which ICU APIs are visible, > developers are likely to unintentionally use APIs that are not binary > compatible, and then get upset when their apps break. Yes, you are right of course. I think we all dream about day, when C++ will get ABI standard, And all major compilers will support it. I think we can hope on this in the nearest 5 years. > ICU 3.0 now has a mechanism for hiding draft APIs, but it is still the > case that all APIs are visible by default. I'm working with the ICU > team to see if we can make it a configure-time option to make draft > APIs *hidden* by default. Or at least, provide a way to build a set of > headers that work that way. Once that mechanism is in place, Apple can > consider exporting ICU as part of our public API set. That is not going > to happen in the next Mac OS X release, 10.4 (Tiger). It *is* a > long-term goal. Excellent to know that you have such goal! > Another thing that would be nice is a way to > conditionalize API visibility based on ICU release (e.g., hide > everything not available in ICU 2.6). We do this in our own APIs so > that developers can build an application that runs on an earlier build > (e.g, build on 10.3, but have the app able to run on 10.2). Yes. If I am not mistake on windows this is developer responsibility take care to correctly choose API compatible to v. XXX Apple have provide us SDKS for different OS versions, and I cannot do mistake. > In the meantime, you can access ICU in Mac OS X, and have your > application continue to work in future versions, by observing the > following restrictions: > > 1. Configure the appropriate version of ICU (no later than 2.6 to run > on 10.3 or later, no later than 3.0 to run on 10.4 or later) with name > versioning off to produce a set of headers you can use. If name > versioning is on, your app is guaranteed to fail the next time a new > version of ICU is introduced. Aha, I see. So ICU allow disable name versioning? I did not know this. > 2. Reference ONLY stable C APIs. All other C APIs, and *all* C++ APIs, > must not be referenced. One caveat: if there is an API that is draft in > 2.6, but stable in 3.0 *with no API changes from 2.6*, then it's safe > to reference it from 2.6. Good point. I see. Actually we have use C++ classes of ICU. > 3. Link against /usr/lib/libicucore.dylib (-licucore on the command > line, or reference the symbolic link in Xcode) Well, this is possible only for Macho and only for GCC apps. We use also CodeWarrior and we make also Carbon apps. My original question was: IF we can use our own CW dlls, but use only .dat file from MacOS X. It seems to me this is bad idea. It can be broken in future versions. > If you follow these steps, then your app should continue to run under > future versions of Mac OS X. I can't guarantee that until Apple > officially supports access to ICU (which we don't, yet), but I can't > think of a scenario where it would fail. Yes, your points should work of course. > If you can't live with these conditions, you will need to build and > link in your own private copy of ICU, including the data file that goes > along with. > > Note: If you have the WWDC Developer preview release of 10.4, that has > ICU 2.8. The release version of 10.4 will have ICU 3.0, and at some > point that will filter into the developer seeds. I see. Thank you for this detailed information, Deborah! -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Wed Aug 18 22:25:19 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Wed Aug 18 14:25:28 2004 Subject: [DONE] Field column index In-Reply-To: <322097348.20040818205616@public.kherson.ua> Message-ID: On 8/18/04 8:56 PM, "Ivan Smahin" wrote: Exallent Ivan! This is good news. One more glitch behavior of Valentina 1.x fixed! > Hello All, > > Now each field has mColumnIndex > and the pair of methods to get a property semantic. > > put_ColumnIndex > get_ColumnIndex > > SysTable keeps those indexes as property of the fields. > Put method performs update for sysTable. Let me add. You have not point WHY we need mColumnIndex. When I have start read this, I have told self: Hmm, why we need it?! we can get this from position of field in Array. Few seconds later I have to see why: on open we read files in physical order from sys tables, then we need sort by that mColumnIndex. This should be mentioned in Comments, Ivan. Other people also can wonder why? > 1. DropField in position 2. That means we need update column indexes for all > fields which are "after dropped field". This task is performed in the > Record_Imp::RemoveField method. > > 2. db.Close() and after that - db.Open(). Here is all database objects are > created using info from sysTables. So we have mFields in the Record in > systable-saved order. We need to sort this array to be in ColumnIndex > order. This task is performed by new method > > void Record_Imp::SortFields( void ) throw() > > Test is passed. Good. IMPOANRT POINT, What about names of Field files ?!!! Add the next test: * you must add say 10 records into table with different data in columns. * after above changes and close/open make sure that you read back the CORRECT data. If you will find that data are wrong then problem and solution is next (we have discuss it on seminar) - in the name of embedded field files, must be use Field_ID, but mot Field Index. Because Field_ID never changes for a field during its life. Please check this. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From rjb at robelko.com Thu Aug 19 10:39:39 2004 From: rjb at robelko.com (Robert Brenstein) Date: Thu Aug 19 03:40:26 2004 Subject: [DONE] Field column index In-Reply-To: References: Message-ID: >On 8/18/04 8:56 PM, "Ivan Smahin" wrote: > >Exallent Ivan! > >This is good news. >One more glitch behavior of Valentina 1.x fixed! > Fixed also in 1.x? From martin.kloss at gmx.de Thu Aug 19 11:29:00 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 19 04:29:13 2004 Subject: [V4MD:DONE] Valentina Xtra In-Reply-To: <20040818154009.17989gmx1@mx006.gmx.net> References: <20040818154009.17989gmx1@mx006.gmx.net> Message-ID: <6.1.2.0.2.20040819112757.020544a8@pop.gmx.de> At 12:18 18.08.2004, you wrote: >"+logToFile object me, integer on, integer flush -- Enables or disables >logging to the file.\n " >" -- If on <> 0 creates 'V4MD_Log.txt' file and logs messages to it. \n" >" -- If flush = 1 then does flush after each log. \n" Hi Igor, very nice, I've always done file logging manually for clients that are debugging my apps, now this will be much easier to do. Thank you :-) Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From sunshine at public.kherson.ua Thu Aug 19 12:58:30 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 19 05:01:02 2004 Subject: [DONE] Field column index In-Reply-To: Message-ID: On 8/19/04 11:39 AM, "Robert Brenstein" wrote: >> On 8/18/04 8:56 PM, "Ivan Smahin" wrote: >> >> Exallent Ivan! >> >> This is good news. >> One more glitch behavior of Valentina 1.x fixed! >> > > Fixed also in 1.x? No, Robert. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Thu Aug 19 13:00:16 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 19 07:14:56 2004 Subject: [CHG:V4MD] VTable Xtra Message-ID: Many new methods (exactly 22) were added to the VTable Xtra. So now its message table looks in the following way (comments stripped): xtra VTable new object me +getName object xtraRef, integer tableRef +setName object xtraRef, integer tableRef, string newName +getRecordExists object xtraRef, integer tableRef, integer recID +getFieldCount object xtraRef, integer tableRef +getFieldRef object xtraRef,integer tableRef,any fldNameOrIndex +getRecordCount object xtraRef, integer tableRef +getPhysicalRecordCount object xtraRef, integer tableRef +getEOF object xtraRef, integer tableRef +getBOF object xtraRef, integer tableRef +getRecID object xtraRef, integer tableRef +putRecID object xtraRef, integer tableRef, integer recID +updateAllRecords object xtraRef, integer tableRef +deleteAllRecords object xtraRef, integer tableRef +createField object xtraRef, integer tableRef, string fldName, symbol fldType, * +dropField object xtraRef, integer tableRef, any fldNameOrIndex +setBlank object xtraRef, integer tableRef +addRecord object xtraRef, integer tableRef +updateRecord object xtraRef, integer tableRef, * +deleteRecord object xtraRef, integer tableRef, * +firstRecord object xtraRef, integer tableRef +lastRecord object xtraRef, integer tableRef +nextRecord object xtraRef, integer tableRef +prevRecord object xtraRef, integer tableRef +defragment object xtraRef, integer tableRef +diagnose object xtraRef, integer tableRef +compact object xtraRef, integer tableRef" +reindex object xtraRef, integer tableRef " +repair object xtraRef, integer tableRef" +setEncryption object xtraRef, integer tableRef, string key +changeEncryption object xtraRef, integer tableRef, string oldKey, string newKey -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From martin.kloss at gmx.de Thu Aug 19 15:35:32 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 19 08:35:39 2004 Subject: [CHG:V4MD] VTable Xtra In-Reply-To: <20040819121505.7999gmx1@mx039.gmx.net> References: <20040819121505.7999gmx1@mx039.gmx.net> Message-ID: <6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> At 12:00 19.08.2004, you wrote: >+getRecID object xtraRef, integer tableRef >+putRecID object xtraRef, integer tableRef, integer recID Hi Igor, since you stripped the comments, can you explain the "putRecID" method? Why are you using "put" instead of the get/set syntax used in the other methods? When would you need to set a RecID and why, they get assigned automatically anyway and since they're unique it would probably return an error in most cases? Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From giv at tlc.kherson.ua Thu Aug 19 16:42:00 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 19 08:44:52 2004 Subject: [CHG:V4MD] VTable Xtra References: <20040819121505.7999gmx1@mx039.gmx.net> <6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> Message-ID: <007e01c485f2$4f36ae60$3b04a8c0@giv> Hi Martin, > Hi Igor, > > since you stripped the comments, can you explain the > "putRecID" method? This is stripped comment: "Goes to the specified record. In the case this record is deleted, returns FALSE and do not changes current record." > Why are you using "put" instead of the get/set syntax > used in the other methods? This is my mistake, of cource. I've already changed it to setRecID(). -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina From sunshine at public.kherson.ua Thu Aug 19 16:44:22 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 19 08:46:50 2004 Subject: [CHG:V4MD] VTable Xtra In-Reply-To: <6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> Message-ID: On 8/19/04 4:35 PM, "Martin Kloss" wrote: > At 12:00 19.08.2004, you wrote: >> +getRecID object xtraRef, integer tableRef >> +putRecID object xtraRef, integer tableRef, integer recID Hi Martin, So letter did come to list? Hmm, why I did not see it? > Hi Igor, > > since you stripped the comments, can you explain the > "putRecID" method? This is like Goto record with RecID = nnn > Why are you using "put" instead of the get/set syntax > used in the other methods? Good point. Igor change this. Put/get this is our C++ names > When would you need to set a RecID and why, they > get assigned automatically anyway and since they're > unique it would probably return an error in most cases? Martin, I will explain new design in the next letter. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From martin.kloss at gmx.de Thu Aug 19 15:47:04 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 19 08:47:14 2004 Subject: [CHG:V4MD] VTable Xtra In-Reply-To: <007e01c485f2$4f36ae60$3b04a8c0@giv> References: <20040819121505.7999gmx1@mx039.gmx.net> <6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> <007e01c485f2$4f36ae60$3b04a8c0@giv> Message-ID: <6.1.2.0.2.20040819154635.02104f30@pop.gmx.de> At 15:42 19.08.2004, you wrote: > > Why are you using "put" instead of the get/set syntax > > used in the other methods? >This is my mistake, of cource. I've already changed it to setRecID(). ah ok, thanks for clarifying :-) Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From martin.kloss at gmx.de Thu Aug 19 15:49:28 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 19 08:49:34 2004 Subject: [CHG:V4MD] VTable Xtra In-Reply-To: References: <6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> Message-ID: <6.1.2.0.2.20040819154745.0214bc28@pop.gmx.de> At 15:44 19.08.2004, you wrote: >So letter did come to list? >Hmm, why I did not see it? yes, I don't know why you didn't get it? check your spam filter ;-) > > since you stripped the comments, can you explain the > > "putRecID" method? > >This is like Goto record with RecID = nnn thanks, Igor already pointed this out. > > When would you need to set a RecID and why, they > > get assigned automatically anyway and since they're > > unique it would probably return an error in most cases? > >Martin, I will explain new design in the next letter. ok, thanks, I'm looking forward to it. Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From giv at tlc.kherson.ua Thu Aug 19 16:47:22 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 19 08:54:16 2004 Subject: [CHG:V4MD] VTable Xtra References: <20040819121505.7999gmx1@mx039.gmx.net><6.1.2.0.2.20040819153256.020999d0@pop.gmx.de> <007e01c485f2$4f36ae60$3b04a8c0@giv> Message-ID: <00aa01c485f3$0eaf1980$3b04a8c0@giv> > > Why are you using "put" instead of the get/set syntax > > used in the other methods? > This is my mistake, of cource. I've already changed it to setRecID(). So thank you for correction ;-) -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina From sunshine at public.kherson.ua Thu Aug 19 17:03:46 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 19 09:07:11 2004 Subject: V4MD: Big changes in design!!! Message-ID: Hi All Director users! 2 days ago we with Igor have got idea how to significantly improve and clean up design of V4MD. V4MD 1.x do have 2 Xtras. From point of vie of other programming languages it have 2 classes. Vdatabase Xtra was very overloaded by API. * it have global methods. * it have methods of Vtable class. * it have methods of Vfield class. In V4RB 2.0 we have add new classes: Vlink, Vset, ... And we was going NOT add them into V4md. Because only way was add them again into Vdatabase Xtra. Not nice. Well, now we do next: * we have main Xtras Vdatabase and Vcursor. * global methods are moved to Valentina Xtra. so we will do Valentina.Init() Valentina.ShutDown() Valentina.Error() * We extract methods related to Vtable from Vdatabase into new Vtable Xtra. * We extract all field methods into new Vfield Xtra. * We add much more new methods into Vtable, Vfield Xtras. * We will add totally new Xtras: Vlink and Vset. ---------------- -- Having such design we get absolutely clean design of classes. All methods are grouped in the correct classes. -- Now V4MD will be not worse then V4RB and other Valentina 2.0 products!!! Now, the main question. Director developers can ask: why we need all this new functions and classes ?! Answer is: * Valentina support not only RDBMS model with SQL queries! * Valentina 2.0 support also Navigational model, or we can name it Object-Relational model. Or even better "Valentina Database Model". This model combines the best features of Navigational model OR model OO model And in the same time it establish absolutely new model, which is *combination* of features of that models plus some own unique features. So. This new classes and functions allow you control, manage and search database WITHOUT SQL at all! In some tasks, Navigational model can be much more effective of SQL's way. I hope describe all this in new Valentina docs. Also we will provide a lots of new examples for V4Md now. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From martin.kloss at gmx.de Thu Aug 19 16:14:00 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 19 09:14:09 2004 Subject: V4MD: Big changes in design!!! In-Reply-To: References: Message-ID: <6.1.2.0.2.20040819161202.0217d2d8@pop.gmx.de> At 16:03 19.08.2004, you wrote: >2 days ago we with Igor have got idea how to significantly improve and clean >up design of V4MD. wow, sounds very promising, I'm happy to hear about the changes, it makes total sense to adapt the RB structure and clean up V4MD. at the same time this will probably mean there's no backward compatibility with Valentina 1.x, right? Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From sunshine at public.kherson.ua Thu Aug 19 17:19:55 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 19 09:32:30 2004 Subject: V4MD: Big changes in design!!! In-Reply-To: <6.1.2.0.2.20040819161202.0217d2d8@pop.gmx.de> Message-ID: On 8/19/04 5:14 PM, "Martin Kloss" wrote: > At 16:03 19.08.2004, you wrote: >> 2 days ago we with Igor have got idea how to significantly improve and clean >> up design of V4MD. > > wow, sounds very promising, I'm happy to hear about the changes, > it makes total sense to adapt the RB structure and clean up V4MD. > > at the same time this will probably mean there's no backward > compatibility with Valentina 1.x, right? Yes, will not be direct step. But in any case few things developer was MUST correct LIKE -> REGEX unicode -> name of languages. ... In the same time most changes - this is change of syntax. So I think we will be able make list of Find/Replace. May be even some automation script for this. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sat Aug 21 19:08:01 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 21 11:08:08 2004 Subject: DONE: now I can create UTF8 database Message-ID: Hi Team, Changes in CVS. Please test them on your side. I have made very simple example in V4RB, which create db with StorageEncoding = UTF8. I can see that VarChar fields of system tables correctly are in UTF8. Actually they looks as plain English and Valentina 1.x db files. * Now I need finish String and Text field in the same way as VarChar. * Next, I will add into example creation of records. * and of course I need make sure that all this I can open and read back. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Sun Aug 22 11:09:58 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Sun Aug 22 03:36:43 2004 Subject: [PROGRESS] V4MD Examples Message-ID: Hi team, Since there are many changes in V4MD public API then many changes to existing samples have been made to keep it working. This is the list of already updated examples: Common Init_Shutdown EscapeString SetExtensions ToFromDiskFile Database_CreateCloseOpen API_Way Table_CreateDrop Field_CreateDrop Records_AddUpdateDelete (practically rewritten from zero) New external cast (ValentinaGlobals.cts) was created. It contains 3 function: IntializeValentinaReferences() DisplayValError() CheckValError() and defines 3 global variables: global Valentina global VTable global VField Function IntializeValentinaReferences() must (or can) be then called from any movie to initialize global Xtras references on startup. Also all the examples has been refactored to use unified error handling - exposed by last two functions DisplayValError() CheckValError() (so all examples now linked to this cast) There are still not ready examples so I'm working on them now. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From giv at tlc.kherson.ua Wed Aug 25 22:06:29 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Wed Aug 25 14:16:47 2004 Subject: [V4MD:DONE] API_way/Field_Find example Message-ID: Hi team, Subject is ready now. Some new methods added to make it working to VTable, VField, VSet, VSetIterator Xtra's that were not exposed before, exactly: VTable.flush() VTable.selectAllRecords() VTable.selectNoneRecords() VField.find() VField.valueExists() VSet.release() VSetIterator.release() and also many bugs fixed in VSet & VSetIterator Xtra's implementations. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From giv at tlc.kherson.ua Wed Aug 25 22:06:29 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 26 00:09:12 2004 Subject: [V4MD:DONE] API_way/Field_Find example Message-ID: Hi team, Subject is ready now. Some new methods added to make it working to VTable, VField, VSet, VSetIterator Xtra's that were not exposed before, exactly: VTable.flush() VTable.selectAllRecords() VTable.selectNoneRecords() VField.find() VField.valueExists() VSet.release() VSetIterator.release() and also many bugs fixed in VSet & VSetIterator Xtra's implementations. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From giv at tlc.kherson.ua Wed Aug 25 22:06:29 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 26 00:32:38 2004 Subject: [V4MD:DONE] API_way/Field_Find example Message-ID: Hi team, Subject is ready now. Some new methods added to make it working to VTable, VField, VSet, VSetIterator Xtra's that were not exposed before, exactly: VTable.flush() VTable.selectAllRecords() VTable.selectNoneRecords() VField.find() VField.valueExists() VSet.release() VSetIterator.release() and also many bugs fixed in VSet & VSetIterator Xtra's implementations. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From sunshine at public.kherson.ua Thu Aug 26 08:33:37 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 26 00:33:43 2004 Subject: test Message-ID: -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Wed Aug 25 22:06:29 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Thu Aug 26 00:34:18 2004 Subject: [V4MD:DONE] API_way/Field_Find example Message-ID: Hi team, Subject is ready now. Some new methods added to make it working to VTable, VField, VSet, VSetIterator Xtra's that were not exposed before, exactly: VTable.flush() VTable.selectAllRecords() VTable.selectNoneRecords() VField.find() VField.valueExists() VSet.release() VSetIterator.release() and also many bugs fixed in VSet & VSetIterator Xtra's implementations. -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina _______________________________________________ Vdevelopers mailing list Vdevelopers@paradigma.ukrcom.kherson.ua http://192.168.2.1/mailman/listinfo/vdevelopers From sunshine at public.kherson.ua Thu Aug 26 08:35:00 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 26 00:35:06 2004 Subject: [V4MD:DONE] API_way/Field_Find example Message-ID: Hi team, Subject is ready now. Some new methods added to make it working to VTable, VField, VSet, VSetIterator Xtra's that were not exposed before, exactly: VTable.flush() VTable.selectAllRecords() VTable.selectNoneRecords() VField.find() VField.valueExists() VSet.release() VSetIterator.release() and also many bugs fixed in VSet & VSetIterator Xtra's implementations. -- Best regards, Igor Gomon From martin.kloss at gmx.de Thu Aug 26 09:40:07 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 26 02:40:13 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: <20040826050928.11211gmx1@mx047.gmx.net> References: <20040826050928.11211gmx1@mx047.gmx.net> Message-ID: <6.1.2.0.2.20040826093832.01eccb08@pop.gmx.de> At 21:06 25.08.2004, you wrote: >Some new methods added to make it working to >VTable, VField, VSet, VSetIterator Xtra's that were not >exposed before, exactly: > > VTable.flush() > VTable.selectAllRecords() > VTable.selectNoneRecords() Hi, what does the "selectNoneRecords" method do? And I would recommend naming it "selectNoRecords". Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From sunshine at public.kherson.ua Thu Aug 26 11:09:29 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 26 03:10:04 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: <6.1.2.0.2.20040826093832.01eccb08@pop.gmx.de> Message-ID: On 8/26/04 10:40 AM, "Martin Kloss" wrote: > At 21:06 25.08.2004, you wrote: >> Some new methods added to make it working to >> VTable, VField, VSet, VSetIterator Xtra's that were not >> exposed before, exactly: >> >> VTable.flush() >> VTable.selectAllRecords() >> VTable.selectNoneRecords() > > Hi, > > what does the "selectNoneRecords" method do? > And I would recommend naming it "selectNoRecords". Hi Martin, A short words: 1) V4MD 2.0 will be able do SEARCH and SORT of tables without SQL at all! this, from one side position V4MD to V12 in good way. because sometimes (very rare actually) some developers say: SQL is complex for me. But the main is that V4MD developers will get now access to the SECOND power of Valentina -- Navigational model. In this model we do not use SQL. We do something as fldName = tblPerson.Field( "Name" ) foundSet = fldName.Find( "Peter" ) loop for each item of set RecID = set(i) tblPerson.GoTo( RecID ) Now we can read fields of the current record. end loop Also we have function to find all records from T1 linked to some record of T1. and more link functions So we can search and sort single table, We can find linked records as set. And so on. We work with Sets and Set Iterators -- new conceptions for V4MD. And we navigate record by record. This is why it is named Navigational. And of course we can mix both models. And one more. Navigational model for some tasks can be in e.g 10 times faster of Relational model! -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From martin.kloss at gmx.de Thu Aug 26 10:25:31 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 26 03:25:38 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: References: <6.1.2.0.2.20040826093832.01eccb08@pop.gmx.de> Message-ID: <6.1.2.0.2.20040826102420.01e4aa40@pop.gmx.de> At 10:09 26.08.2004, you wrote: >1) V4MD 2.0 will be able do SEARCH and SORT of tables without SQL at all! Hi Ruslan, I'm familiar with the navigational model, I was just wondering in which case you would want to select "no" records, maybe it's just the naming of the function that I misunderstood. Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From sunshine at public.kherson.ua Thu Aug 26 14:44:18 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 26 06:44:26 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: <6.1.2.0.2.20040826102420.01e4aa40@pop.gmx.de> Message-ID: On 8/26/04 11:25 AM, "Martin Kloss" wrote: > At 10:09 26.08.2004, you wrote: >> 1) V4MD 2.0 will be able do SEARCH and SORT of tables without SQL at all! > > Hi Ruslan, > > I'm familiar with the navigational model, I was just wondering in > which case you would want to select "no" records, maybe it's > just the naming of the function that I misunderstood. This function simple do return new VBitSet( table.get_PhysicalRecordCount() ) I.e. It prepare BitSet of required size for Table. Usually, developer (and me too) forget that it needs to use here physical record count and use Table.RecordCount() To protect from this human mistake we have add this function. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From martin.kloss at gmx.de Thu Aug 26 13:55:34 2004 From: martin.kloss at gmx.de (Martin Kloss) Date: Thu Aug 26 06:55:42 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: References: <6.1.2.0.2.20040826102420.01e4aa40@pop.gmx.de> Message-ID: <6.1.2.0.2.20040826135429.0203b030@pop.gmx.de> At 13:44 26.08.2004, you wrote: >This function simple do > > return new VBitSet( table.get_PhysicalRecordCount() ) uh...so a function with a name "SelectNoneRecords" returns the record count? that doesn't really make any sense to me?! Martin. Martin Kloss Need music? http://www.selling-sound.com Like the author? Buy the book at: http://www.amazon.de/exec/obidos/ASIN/3898422194/lingmmugd Get your daily dose of Lingo at the LingoPark: http://www.lingopark.de From sunshine at public.kherson.ua Thu Aug 26 16:17:06 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Thu Aug 26 08:21:40 2004 Subject: [V4MD:DONE] API_way/Field_Find example In-Reply-To: <6.1.2.0.2.20040826135429.0203b030@pop.gmx.de> Message-ID: On 8/26/04 2:55 PM, "Martin Kloss" wrote: > At 13:44 26.08.2004, you wrote: >> This function simple do >> >> return new VBitSet( table.get_PhysicalRecordCount() ) > > uh...so a function with a name "SelectNoneRecords" returns > the record count? that doesn't really make any sense to me?! No, it returns the BitSet with size equal to physical record count in the table. BitSet this is array of bits. For example, if you have million records in a table, Then we get BitSet in million bits = 128KB. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sat Aug 28 01:15:59 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 27 17:16:06 2004 Subject: [ANN] V4RB b13. Message-ID: Hi All, You can download b13 of V4RB. [KERNEL][NEW] Now in the kernel we have new planer of query. The most good thing is that now query of kind WHERE f1 > 5 and and f2 = 6 and f1 < 7 will work. Valentina 1.x did fail here. [NEW] classes Vdatabase, Vtable and Vfield now have 3 new properties each: Locale as String StorageEncoding as String CollationAttribute [NEW] 2 examples in the folder 'Common' one example demonstrate you inheritance behavior for above 3 new properties. I.e. Table inherit settings from Database, and Field from Table. This example will be improved yet. Second example show creation of UTF8 and UTF16 db files. you can open them by hex edit to see that internally they really differ and use different encodings. [CHG] class Vcursor now DO NOT have property SqlString. we have decide that it is not correct to have it in each cursor. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Fri Aug 27 19:30:48 2004 From: jda at his.com (jda) Date: Fri Aug 27 18:30:56 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: >. > > >[NEW] classes Vdatabase, Vtable and Vfield now > have 3 new properties each: > Locale as String > StorageEncoding as String > CollationAttribute Ruslan, I know what storageEncoding and CollationAttribute are. What does Locale do? What is it for. And is there a list of locale constants? Jon From sunshine at public.kherson.ua Sat Aug 28 03:10:41 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Fri Aug 27 19:10:52 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 2:30 AM, "jda" wrote: >> [NEW] classes Vdatabase, Vtable and Vfield now >> have 3 new properties each: >> Locale as String >> StorageEncoding as String >> CollationAttribute > > Ruslan, > > I know what storageEncoding and CollationAttribute are. What does > Locale do? What is it for. And is there a list of locale constants? Locale is "language + Country" en_US en_GB ru_RU ru_US russian in Ukraine // if any difference Locale specify many things. upper and lower case it seems currency, date time // but we do not use this now >From Locale we create later Collator. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sat Aug 28 08:09:12 2004 From: jda at his.com (jda) Date: Sat Aug 28 07:09:17 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: Hi Ruslan, I can't even get started with b13. Here's how I make a new database: tempDataBase = new myDataBase tempDataBase.Creator = "ABCD" // optional tempDatabase.StorageEncoding = "UTF8" tempDatabase.collationAttribute = 2 Valentina.ThrowExceptions = false tempDataBase.Create(f, 1, 2 * 1024 ) Valentina.ThrowExceptions = true //Error checking, etc. ... A file is created, but the folderitem.exists = false! When I try to open it -> crash. Here are some lines from the crash log: Thread 0 Crashed: 0 Kernel_Carbon_Debug.shlb 0x02450abc get_FieldEx_Internal__Q23fbl5TableCFPCw + 0x38 1 Kernel_Carbon_Debug.shlb 0x02450a0c get_Field__Q23fbl5TableCFPCw + 0x30 2 Kernel_Carbon_Debug.shlb 0x02427664 CreateFieldInstance__3fblFQ23fbl25smart_ptrPCwUlUsQ23fbl39smart_ptr + 0xc4 3 Kernel_Carbon_Debug.shlb 0x02450c3c CreateField__Q23fbl5TableFPCwUlUsQ23fbl39smart_ptr + 0x68 4 Kernel_Carbon_Debug.shlb 0x024506f8 MakeNewField_RecID__Q23fbl5TableFv + 0x70 5 Kernel_Carbon_Debug.shlb 0x0245062c MakeNewDefaultFields__Q23fbl5TableFv + 0x1c 6 Kernel_Carbon_Debug.shlb 0x020a7974 CommonInit__Q23fbl5TableFQ23fbl10ETableKindQ23fbl12EStorageTypeUl + 0x60 7 Kernel_Carbon_Debug.shlb 0x020a8290 ReadProperties__Q23fbl5TableFv + 0x1f4 8 Kernel_Carbon_Debug.shlb 0x0247a150 ReadFromSchema__Q23fbl21I_SchemaStorable_ImplFv + 0x48 9 Kernel_Carbon_Debug.shlb 0x0247a354 Create_ChildElements_Instances__Q23fbl21I_SchemaStorable_ImplFQ23fbl11SysItemKind + 0x138 10 Kernel_Carbon_Debug.shlb 0x02090e40 ReadElements__Q23fbl8DatabaseFv + 0x64 11 Kernel_Carbon_Debug.shlb 0x0247a164 ReadFromSchema__Q23fbl21I_SchemaStorable_ImplFv + 0x5c 12 Kernel_Carbon_Debug.shlb 0x0208c714 Open__Q23fbl8DatabaseFv + 0x5c 13 Plugin 0x0050071c Database_Open__FP16REALobjectStructP20REALfolderItemStruct + 0x138 14 main 0x010ec738 0x1008000 + 0xe4738 ... Here are the last lines of the log: Database_Open... PARAM: inDatabase = 27173120 PARAM: pLocation->get_Path() = "Mac HD:Users:jonathan:Desktop:Database8" A second, more minor, problem is that the creator is still set to VALA, not ABCD. Jon From sunshine at public.kherson.ua Sat Aug 28 15:20:23 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 28 07:20:32 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 3:09 PM, "jda" wrote: > Hi Ruslan, > > I can't even get started with b13. > > Here's how I make a new database: > > tempDataBase = new myDataBase > tempDataBase.Creator = "ABCD" // optional > tempDatabase.StorageEncoding = "UTF8" > tempDatabase.collationAttribute = 2 > > Valentina.ThrowExceptions = false > tempDataBase.Create(f, 1, 2 * 1024 ) > Valentina.ThrowExceptions = true > > //Error checking, etc. > ... > > > A file is created, but the folderitem.exists = false! When I try to > open it -> crash. Here are some lines from the crash log: Does work my examples from Common folder on your side ? 2 examples with Locale prefix ? -------- BTW, important. Now ValentinaInit() really must be the first call to Valentina engine. You cannot use before it even DeugLevel() -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sat Aug 28 08:44:29 2004 From: jda at his.com (jda) Date: Sat Aug 28 07:44:35 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: > > >Does work my examples from Common folder on your side ? >2 examples with Locale prefix ? Yes, they don't crash at least. > > >-------- >BTW, important. > >Now ValentinaInit() really must be the first call to Valentina engine. > >You cannot use before it even DeugLevel() I do. OK, more funny stuff. My preferences file is a Valentina database. When populating it I use a cursor to create records and set defaults. It crashes on the last line: myCursor = nil myCursor = new VCursor(prefsDB, "select textField from prefs where propertyName='gReferenceTypes'", Valentina.kServerSide, Valentina.kReadWrite) //do stuff with myCursor myCursor = nil // next line crashes.... myCursor = new VCursor(prefsDB, "select * from prefs where RecId=0", Valentina.kServerSide, Valentina.kReadWrite) The crash log is: Thread 0 Crashed: 0 Kernel_Carbon_Debug.shlb 0x0253d310 _cl__Q23fbl27Predicate_Field_Equal_ValueCFQ23fbl26smart_ptr + 0x34 1 Kernel_Carbon_Debug.shlb 0x0235ff3c DoFormula__Q23fbl15SearchByFormulaFUlQ23fbl26smart_ptr + 0x74 2 Kernel_Carbon_Debug.shlb 0x020999ac DoFormulaForField__Q23fbl10UseFormulaFv + 0x158 3 Kernel_Carbon_Debug.shlb 0x0209980c DoFormula__Q23fbl10UseFormulaFv + 0x18 4 Kernel_Carbon_Debug.shlb 0x02099770 Run__Q23fbl10UseFormulaFv + 0x48 5 Kernel_Carbon_Debug.shlb 0x0207edf0 Find_NotIndexed__Q23fbl9Field_ImpCFQ23fbl25smart_ptrQ23fbl34smart_ptr + 0x30c 6 Kernel_Carbon_Debug.shlb 0x0207821c Find__Q23fbl9Field_ImpCFQ23fbl26smart_ptrQ23fbl25smart_ptr + 0x28c 7 Kernel_Carbon_Debug.shlb 0x02541eb8 Execute__Q23fbl17PNode_Field_ValueFQ23fbl24smart_ptr + 0x5c 8 Kernel_Carbon_Debug.shlb 0x022f17f0 Execute__Q23fbl4PlanFv + 0x4c 9 Kernel_Carbon_Debug.shlb 0x02232278 Execute__Q23fbl5QueryFv + 0x4c 10 Kernel_Carbon_Debug.shlb 0x022e63b0 Refresh__Q23fbl14Table_IndirectFv + 0x1d0 11 Kernel_Carbon_Debug.shlb 0x022e60f4 put_Where__Q23fbl14Table_IndirectFQ23fbl25smart_ptr + 0x2c 12 Kernel_Carbon_Debug.shlb 0x0214e720 CreateResultTable__Q24vsql14Node_TableExprFQ23fbl27smart_ptrUl + 0x154 Jon From sunshine at public.kherson.ua Sat Aug 28 16:08:26 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 28 08:08:39 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 3:44 PM, "jda" wrote: >> >> >> Does work my examples from Common folder on your side ? >> 2 examples with Locale prefix ? > > Yes, they don't crash at least. > >> >> >> -------- >> BTW, important. >> >> Now ValentinaInit() really must be the first call to Valentina engine. >> >> You cannot use before it even DeugLevel() > > I do. So now that crash gone ? > OK, more funny stuff. My preferences file is a Valentina database. > When populating it I use a cursor to create records and set defaults. > It crashes on the last line: > > myCursor = nil > myCursor = new VCursor(prefsDB, "select textField from prefs > where propertyName='gReferenceTypes'", Valentina.kServerSide, > Valentina.kReadWrite) > > //do stuff with myCursor > > myCursor = nil > > // next line crashes.... > myCursor = new VCursor(prefsDB, "select * from prefs where > RecId=0", Valentina.kServerSide, Valentina.kReadWrite) I will check such query, but! Official way for Valentina 2.0 to get empty cursor is ... WHERE false Please try this. > The crash log is: > > > Thread 0 Crashed: > 0 Kernel_Carbon_Debug.shlb 0x0253d310 > _cl__Q23fbl27Predicate_Field_Equal_ValueCFQ23fbl26smart_ptr -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sat Aug 28 09:10:43 2004 From: jda at his.com (jda) Date: Sat Aug 28 08:10:50 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: > > >> >>> Now ValentinaInit() really must be the first call to Valentina engine. >>> >>> You cannot use before it even DeugLevel() >> >> I do. > >So now that crash gone ? Sorry, I meant I already call Valentina.Init first, so that's not the problem. > >I will check such query, but! > >Official way for Valentina 2.0 to get empty cursor is > > ... WHERE false > >Please try this. > OK. Jon From jda at his.com Sat Aug 28 10:21:51 2004 From: jda at his.com (jda) Date: Sat Aug 28 09:21:57 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: >On 8/28/04 3:44 PM, "jda" wrote: > >>> >>> >>> Does work my examples from Common folder on your side ? >>> 2 examples with Locale prefix ? >> >> Yes, they don't crash at least. >> > >> OK, I figured out one problem (silly, I should have looked at the example more carefully). When you open a database you *must* specify the storageEncoding beforehand. If you don't -> crash. OK, easy to do. But why is this necessary? The storageEncoding is a property of the database -- why can't Valentina read it when a db is opened? Jon From jda at his.com Sat Aug 28 11:03:10 2004 From: jda at his.com (jda) Date: Sat Aug 28 10:03:18 2004 Subject: SQL search In-Reply-To: References: Message-ID: I have a table with 19 records. One of the fields is "propertyName", where I store the name of a variable, and the other field can contain the various values. This search myDatabase.SQLSelect("select varCharField from misc where propertyName='groupName' ORDER BY varCharField" returns all 19 records, even though only one of them has a propertyName of 'groupName'. What is wrong with the select statement (or is this a bug in 2.0)? Thanks, Jon From frank-list2 at mindstarprods.com Sat Aug 28 16:22:02 2004 From: frank-list2 at mindstarprods.com (Frank Schima) Date: Sat Aug 28 15:22:08 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: Hi Ruslan, On Aug 27, 2004, at 6:15 PM, Ruslan Zasukhin wrote: > You can download b13 of V4RB. Can I suggest/request that you put the VEngine inside the VComponents folder and have a single download for both of them during this alpha/beta period of Valentina 2 to save us all some trouble? It seems they are both being updated constantly right now. Of course we still need to download the V4RB plugin separately because that needs to go in the RB plugins folder anyway. Also, please put dates on the documentation below the downloads so we know whether or not to download them each time. > [CHG] class Vcursor now DO NOT have property SqlString. > we have decide that it is not correct to have it in each > cursor. I don't understand this change, can you elaborate why you are removing this? I admit that I have never used that property before, so I don't see this as a big deal. Thanks! Frank -- Frank Schima Independent Macintosh Consultant From sunshine at public.kherson.ua Sat Aug 28 23:44:15 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 28 15:44:23 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 11:22 PM, "Frank Schima" wrote: Hi Frank, >> [CHG] class Vcursor now DO NOT have property SqlString. >> we have decide that it is not correct to have it in each >> cursor. > > I don't understand this change, can you elaborate why you are removing > this? I admit that I have never used that property before, so I don't > see this as a big deal. But simply there is no any sense to do that. If YOU have create cursor by some query then you already have that string. And there is no any advantage to keep it in cursor. I have see cases when developers have build SQL query in many KB. So why spend RAM on useless thing ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sat Aug 28 23:45:27 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sat Aug 28 15:45:33 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 11:22 PM, "Frank Schima" wrote: Hi Frank, > On Aug 27, 2004, at 6:15 PM, Ruslan Zasukhin wrote: > >> You can download b13 of V4RB. > > Can I suggest/request that you put the VEngine inside the VComponents > folder and have a single download for both of them during this > alpha/beta period of Valentina 2 to save us all some trouble? It seems > they are both being updated constantly right now. Of course we still > need to download the V4RB plugin separately because that needs to go in > the RB plugins folder anyway. Well, ok. > Also, please put dates on the documentation below the downloads so we > know whether or not to download them each time. You mean PDF docs? They do not have dates? Of course I need fix that. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From frank-list2 at mindstarprods.com Sat Aug 28 16:58:23 2004 From: frank-list2 at mindstarprods.com (Frank Schima) Date: Sat Aug 28 15:58:28 2004 Subject: [ANN] V4RB b13. In-Reply-To: References: Message-ID: <000C046C-F935-11D8-96E0-0003939246BC@mindstarprods.com> On Aug 28, 2004, at 4:44 PM, Ruslan Zasukhin wrote: > On 8/28/04 11:22 PM, "Frank Schima" > wrote: > > Hi Frank, > >>> [CHG] class Vcursor now DO NOT have property SqlString. >>> we have decide that it is not correct to have it in each >>> cursor. >> >> I don't understand this change, can you elaborate why you are removing >> this? I admit that I have never used that property before, so I don't >> see this as a big deal. > > But simply there is no any sense to do that. > > If YOU have create cursor by some query then you already have that > string. > And there is no any advantage to keep it in cursor. > > I have see cases when developers have build SQL query in many KB. > So why spend RAM on useless thing ? I thought that was the reasoning. I do agree with that. -Frank -- Frank Schima Independent Macintosh Consultant From jda at his.com Sat Aug 28 20:45:19 2004 From: jda at his.com (jda) Date: Sat Aug 28 19:45:27 2004 Subject: [ANN] V4RB b13. In-Reply-To: <000C046C-F935-11D8-96E0-0003939246BC@mindstarprods.com> References: <000C046C-F935-11D8-96E0-0003939246BC@mindstarprods.com> Message-ID: >> >> >>I have see cases when developers have build SQL query in many KB. >>So why spend RAM on useless thing ? > >I thought that was the reasoning. I do agree with that. > Actually, I have found it useful. Often I build a string in the query itself, and it is useful to see what the cursor actually "sees". It is certainly possible to create a fully formed string first for debugging purposes, but I (for one) have found it useful in debugging to see what the cursor holds. Just my 2 cents. Jon From sunshine at public.kherson.ua Sun Aug 29 09:31:59 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 01:35:24 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/29/04 3:45 AM, "jda" wrote: >>> I have see cases when developers have build SQL query in many KB. >>> So why spend RAM on useless thing ? >> >> I thought that was the reasoning. I do agree with that. >> > > Actually, I have found it useful. Often I build a string in the query > itself, and it is useful to see what the cursor actually "sees". For this I do it as next query = "... Where fld = " + str(id) Now you can see real string query in debugger. > It > is certainly possible to create a fully formed string first for > debugging purposes, but I (for one) have found it useful in debugging > to see what the cursor holds. I think this is the only advantage. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sun Aug 29 09:36:00 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 01:38:18 2004 Subject: SQL search In-Reply-To: Message-ID: On 8/28/04 6:03 PM, "jda" wrote: > I have a table with 19 records. One of the fields is "propertyName", > where I store the name of a variable, and the other field can contain > the various values. > > This search > > myDatabase.SQLSelect("select varCharField from misc where > propertyName='groupName' ORDER BY varCharField" > > returns all 19 records, even though only one of them has a > propertyName of 'groupName'. > > What is wrong with the select statement (or is this a bug in 2.0)? I think bug. This was usual database, Or you have set UTF8 for it ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sun Aug 29 09:40:44 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 01:40:49 2004 Subject: [ANN] V4RB b13. In-Reply-To: Message-ID: On 8/28/04 5:21 PM, "jda" wrote: >>>> Does work my examples from Common folder on your side ? >>>> 2 examples with Locale prefix ? >>> >>> Yes, they don't crash at least. >>> >>>> > > OK, I figured out one problem (silly, I should have looked at the > example more carefully). > > When you open a database you *must* specify the storageEncoding > beforehand. If you don't -> crash. OK, easy to do. But why is this > necessary? The storageEncoding is a property of the database -- why > can't Valentina read it when a db is opened? Agree! this must not be required. Otherwise how Valentina Studio will work?! So I must store this info into system tables of course. Hmm. This will not work, because when I read from sys tables I already must know encoding. So it must go to header of vdb file...also not very good solution: System tables always will be in UTF16 format. I think this easy to do because tables can have different format from database. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sun Aug 29 08:06:21 2004 From: jda at his.com (jda) Date: Sun Aug 29 07:06:29 2004 Subject: SQL search In-Reply-To: References: Message-ID: > > > >> This search >> >> myDatabase.SQLSelect("select varCharField from misc where >> propertyName='groupName' ORDER BY varCharField" >> >> returns all 19 records, even though only one of them has a >> propertyName of 'groupName'. >> >> What is wrong with the select statement (or is this a bug in 2.0)? > >I think bug. > >This was usual database, >Or you have set UTF8 for it ? > It is set to UTF8. Jon From sunshine at public.kherson.ua Sun Aug 29 15:23:06 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 07:25:17 2004 Subject: SQL search In-Reply-To: Message-ID: On 8/29/04 3:06 PM, "jda" wrote: >>> This search >>> >>> myDatabase.SQLSelect("select varCharField from misc where >>> propertyName='groupName' ORDER BY varCharField" >>> >>> returns all 19 records, even though only one of them has a >>> propertyName of 'groupName'. >>> >>> What is wrong with the select statement (or is this a bug in 2.0)? >> >> I think bug. >> >> This was usual database, >> Or you have set UTF8 for it ? >> > > It is set to UTF8. Can you check for UTF16 ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sun Aug 29 08:39:43 2004 From: jda at his.com (jda) Date: Sun Aug 29 07:39:50 2004 Subject: SQL search In-Reply-To: References: Message-ID: > > >>> myDatabase.SQLSelect("select varCharField from misc where >>>> propertyName='groupName' ORDER BY varCharField" >>>> >>>> returns all 19 records, even though only one of them has a >>>> propertyName of 'groupName'. >>>> >>>> What is wrong with the select statement (or is this a bug in 2.0)? >>> >>> I think bug. >>> >>> This was usual database, >>> Or you have set UTF8 for it ? >>> >> >> It is set to UTF8. > >Can you check for UTF16 ? > UTF16 doesn't work, either. All 19 records are still found... Jon From jda at his.com Sun Aug 29 08:45:53 2004 From: jda at his.com (jda) Date: Sun Aug 29 07:45:58 2004 Subject: SQL search In-Reply-To: References: Message-ID: >>> >> >>Can you check for UTF16 ? >> > >UTF16 doesn't work, either. All 19 records are still found... > BTW, I found another couple of issues with SQL searching (tell me if we're not supposed to be checking this yet). 1. If I set the .collationAttribute to 2, searches are case sensitive! I thought that the "secondary" case was case insensitive. 2. If I set the .collationAttribute to 1, the search finds every record in the database, regardless of what I type in. 3. Searches for words containing unicode characters (e.g. t?st) fail (.collationAttribute = 2, UTF-8 database). Jon From sunshine at public.kherson.ua Sun Aug 29 16:21:37 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 08:21:44 2004 Subject: SQL search In-Reply-To: Message-ID: On 8/29/04 3:45 PM, "jda" wrote: >>> Can you check for UTF16 ? >>> >> >> UTF16 doesn't work, either. All 19 records are still found... >> > > BTW, I found another couple of issues with SQL > searching (tell me if we're not supposed to be > checking this yet). > > 1. If I set the .collationAttribute to 2, > searches are case sensitive! I thought that the > "secondary" case was case insensitive. > > 2. If I set the .collationAttribute to 1, the > search finds every record in the database, > regardless of what I type in. > > 3. Searches for words containing unicode > characters (e.g. t?st) fail (.collationAttribute > = 2, UTF-8 database). I think this not ready yet. -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Sun Aug 29 22:34:47 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 14:34:55 2004 Subject: FIXED: opening of UTF8 dbs Message-ID: * now system tables are always in UTF16. * now db, table and field store locale parameters in sys tables * now I can open utf8 db and correctly get back structure -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Mon Aug 30 01:30:23 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 17:30:31 2004 Subject: V4RB b14 uploaded. Message-ID: Hi All, You can download b14. 1) now It can open UTF8 database 2) viSQL project modified: Structure Browser window extracted into 'shared items' folder. 3) Example Locale_Records now use this Structure Browser, we can now easy see that after open we get back correct table and fields. ---------- I think it is cool that we have now such shared items as - Structure Browser - simple Table Browser Now me and everybody from you can in few lines of code plug them into our projects for fast use. Frank, please look on our improvements of viSQL. Many things now simpler with V4RB 2.0 I think may be we can improve Structure Browser to be able manage few database in the same time? I think for this we need array of dbs in this window. And we must have then functions AddDb( db ) RemoveDb( db) Then this structure browser will be very cool -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Mon Aug 30 01:37:20 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 17:37:27 2004 Subject: V4RB b14 uploaded. In-Reply-To: Message-ID: On 8/30/04 1:30 AM, "Ruslan Zasukhin" wrote: > Hi All, > > You can download b14 Forget to say: * Vcomponents folder now long time will be stable. it contains only ICU libs * Vengine will contain dll and resources folder -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Sun Aug 29 19:22:20 2004 From: jda at his.com (jda) Date: Sun Aug 29 18:22:26 2004 Subject: V4RB b14 uploaded. In-Reply-To: References: Message-ID: >Hi All, > >You can download b14. > Now when I try to open a db (that I just created) I get an exception: "File %U is already open." When I quit and rerun, when I try to open it I get an error -61. Jon From sunshine at public.kherson.ua Mon Aug 30 02:40:39 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Sun Aug 29 18:40:46 2004 Subject: V4RB b14 uploaded. In-Reply-To: Message-ID: On 8/30/04 2:22 AM, "jda" wrote: >> Hi All, >> >> You can download b14. >> > > Now when I try to open a db (that I just created) I get an exception: > "File %U is already open." > > When I quit and rerun, when I try to open it I get an error -61. Please check example Common/Locale_Records -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From jda at his.com Mon Aug 30 09:05:19 2004 From: jda at his.com (jda) Date: Mon Aug 30 08:05:30 2004 Subject: V4RB b14 uploaded. In-Reply-To: References: Message-ID: > > >> >>> You can download b14. >>> >> >> Now when I try to open a db (that I just created) I get an exception: >> "File %U is already open." >> >> When I quit and rerun, when I try to open it I get an error -61. > >Please check example Common/Locale_Records > I did, and didn't see anything there that gave me the answer. The db is create with: tempDataBase = new myDataBase tempDataBase.Creator = "ABCD" tempDatabase.StorageEncoding = "UTF8" tempDatabase.collationAttribute = 2 Valentina.ThrowExceptions = false tempDataBase.Create(f, 1, 2 * 1024 ) Valentina.ThrowExceptions = true tempDataBase.close tempDataBase = nil myDB = f The open code is very simple: if myDatabase1 = nil then myDatabase1 = new myDatabase end if try myDatabase1.Open(myDB) //myDB is the correct folderitem catch vError as VException if vError.ErrorNumber = -39 then //handle old version error ... return else raise vError end if end try Jon From sunshine at public.kherson.ua Mon Aug 30 19:36:40 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 30 11:36:56 2004 Subject: [V4MD:TEST] Results In-Reply-To: <00a801c48ea5$adca4980$3b04a8c0@giv> Message-ID: On 8/30/04 6:26 PM, "Igor Gomon" wrote: > I've made next tests: > > (1 time unit is 1/60 second) > > -- first > set startTime to the timer > repeat with i = 0 to 100000 > f1.getName2() // Usual call of object's method > end repeat > set endTime to the timer > alert "Time taken using child object " & (endTime - startTime) > -- RESULT: 9 > > -- second > set startTime to the timer > set f1Ref to VTable.getFieldRef(tableRef, "f1") > repeat with i = 0 to 100000 > f1.getName(f1Ref) // Call of static (class) method. 'this' is passed > as first parameter. > end repeat > set endTime to the timer > alert "Time taken using object reference " & (endTime - startTime) > -- RESULT: 9 > > > -- third > set table1 to gDb.getTableXtra("Table1") > set startTime to the timer > repeat with i = 0 to 100000 > // Using dot-syntax. Each time temporary VField Xtra is created > // and then destroyed. > table1.getFieldXtra("f1").getName2() > end repeat > set endTime to the timer > -- RESULT: 230 > > (In tests function getName() & getName2() does the same > but getName() is static & getName2() not). > > So, > I think that we have no strong reasons not to use child objects. > What do you think? Well, of course it is 20 times slower, but looks much much better and logical. Add one more test: fld = table1.getFieldXtra("f1"). loop { fld.getName2() } I think in this case we can get much better results! The same is true for REALbasic for example. It is common RULE: if move from loop something then loop will be faster. So test and give us results. ------------- Also why you use such names? getTableXtra() ? This should be like in realbasic gDB.Table("T").Field("f") = 5 -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Mon Aug 30 19:45:59 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Mon Aug 30 11:46:10 2004 Subject: [V4MD:TEST] Results References: Message-ID: <00cb01c48eb0$d3c81530$3b04a8c0@giv> > Well, of course it is 20 times slower, but looks much much better and > logical. > > Add one more test: > > fld = table1.getFieldXtra("f1"). > > loop > { > fld.getName2() > } I've already gave you this test - see first test & result. > Also why you use such names? > > getTableXtra() ? This is just for testing because name "getTable" already used as static method name. Or do you mean "Table" name? > This should be like in realbasic > gDB.Table("T").Field("f") = 5 ??? ? ????? :) -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina From sunshine at public.kherson.ua Mon Aug 30 19:50:25 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 30 11:50:37 2004 Subject: [V4MD:TEST] Results In-Reply-To: Message-ID: On 8/30/04 7:36 PM, "Ruslan Zasukhin" wrote: > On 8/30/04 6:26 PM, "Igor Gomon" wrote: > >> I've made next tests: >> >> (1 time unit is 1/60 second) >> >> -- first >> set startTime to the timer >> repeat with i = 0 to 100000 >> f1.getName2() // Usual call of object's method >> end repeat >> set endTime to the timer >> alert "Time taken using child object " & (endTime - startTime) >> -- RESULT: 9 >> >> -- second >> set startTime to the timer >> set f1Ref to VTable.getFieldRef(tableRef, "f1") >> repeat with i = 0 to 100000 >> f1.getName(f1Ref) // Call of static (class) method. 'this' is passed >> as first parameter. >> end repeat >> set endTime to the timer >> alert "Time taken using object reference " & (endTime - startTime) >> -- RESULT: 9 >> >> >> -- third >> set table1 to gDb.getTableXtra("Table1") >> set startTime to the timer >> repeat with i = 0 to 100000 >> // Using dot-syntax. Each time temporary VField Xtra is created >> // and then destroyed. >> table1.getFieldXtra("f1").getName2() Igor, don't you think that it is possible to make hack here?! 1) V4MD is single-thread. Always. 2) so we can prepare a) one Vtable object which live long time b) one VField object which live long time Just assign to them I_Table* or I_Field* And return them as result? No, this will not works :-( Because we cannot differ if user have made it as tmp object Or he have store reference to this object... ------ Well, have you investigate if something can be improved in e.g. Xtra creation? May be we cache some pointers to interfaces? So next time we will use cached values instead of QueryInterface() ? Ok, this is not the main target now Igor. Just keep in mind that later we can think here for optimization. >> end repeat >> set endTime to the timer >> -- RESULT: 230 >> >> (In tests function getName() & getName2() does the same >> but getName() is static & getName2() not). >> >> So, >> I think that we have no strong reasons not to use child objects. >> What do you think? > > > Well, of course it is 20 times slower, but looks much much better and > logical. > > Add one more test: > > fld = table1.getFieldXtra("f1"). > > loop > { > fld.getName2() > } > > > I think in this case we can get much better results! > The same is true for REALbasic for example. > > It is common RULE: > if move from loop something then loop will be faster. > > So test and give us results. > > > ------------- > Also why you use such names? > > getTableXtra() ? > > This should be like in realbasic > > gDB.Table("T").Field("f") = 5 > > -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From sunshine at public.kherson.ua Mon Aug 30 19:54:56 2004 From: sunshine at public.kherson.ua (Ruslan Zasukhin) Date: Mon Aug 30 11:55:06 2004 Subject: [V4MD:TEST] Results In-Reply-To: <00cb01c48eb0$d3c81530$3b04a8c0@giv> Message-ID: On 8/30/04 7:45 PM, "Igor Gomon" wrote: >> Well, of course it is 20 times slower, but looks much much better and >> logical. >> >> Add one more test: >> >> fld = table1.getFieldXtra("f1"). >> >> loop >> { >> fld.getName2() >> } > I've already gave you this test - see first test & result. Aha! Great! So Igor, redo design of V4MD to this new approach! Cooooooooooooooooooooooll !!! :-) Simply cool! Now we have for V4MD the 100% correct OO design! Exactly like in REALbasic. One moment is even better REALbasic db.Table("T").Field("f").value = 5 Director db.Table("T").Field("f") = 5 Am I right ? -- Best regards, Ruslan Zasukhin [ I feel the need...the need for speed ] ------------------------------------------------------------- e-mail: ruslan@paradigmasoft.com web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://lists.macserve.net/mailman/listinfo/valentina ------------------------------------------------------------- From giv at tlc.kherson.ua Mon Aug 30 20:33:30 2004 From: giv at tlc.kherson.ua (Igor Gomon) Date: Mon Aug 30 12:38:23 2004 Subject: [V4MD:TEST] Results References: Message-ID: <00dd01c48eb7$7782b2b0$3b04a8c0@giv> > Now we have for V4MD the 100% correct OO design! > Exactly like in REALbasic. > > One moment is even better > > REALbasic > > db.Table("T").Field("f").value = 5 > > > Director > > db.Table("T").Field("f") = 5 Exactly: db.Table("T").Field("f").setValue(5) -- Best regards, Igor Gomon ------------------------------------------------------------- e-mail: giv@tlc.kherson.ua web: http://www.paradigmasoft.com To subscribe to the Valentina mail list go to: http://listserv.macserve.net/mailman/listinfo/valentina