The Valentina Affiliate Program is now available through valentina-db.com. This is a great way to make money off of promoting Valentina technologies on your blog, website or company site. Earn 10% off of your referrals. Continue reading Earn Referral Commissions through Valentina Affiliate Program
[V4CC][NEW] DataSource for VCursor and VTable classes.
NSTableView class has setDataSource method that allows assign a NSTableDataSource instance to be a data source for that table view.
In v4.8 we have to add VCursorDataSource and VTableDataSource classes that are able to do this job — easy display a cursor or a table into a given NSTableView. As easy as a single line of code:
mCursorDataSource = [[VCursorDataSource alloc]
initWithCursor:mCursor view:tvListBox];
Continue reading [V4CC][NEW] DataSource for VCursor and VTable classes.
[V4CC][NEW] KVC for VCursor and VTable.
In v4.8 we adding support of Key Value Coding (KVC) to VCursor and VTable classes.
This is implemented as VCursor (KVC) category with a couple of methods:
@interface VCursor (KVC) // If wrong key is specified then nil is returned. - (id) valueForKey:(NSString *)key; // If wrong key is specified then nothing is changed. - (void) setValue:(id)value forKey:(NSString*)key;
[V4CC][NEW] Enumerators & FastEnumeration support.
In v4.8 we have implement
a) Enumerators for all V4CC classes where this was possible and
b) for Fields we have provide also FastEnumeration protocol in classes VTable and VCursor, because this is the most often usage case.
Continue reading [V4CC][NEW] Enumerators & FastEnumeration support.
[V4CC][New] Extended Support of Cocoa and Obj-C Features
In v4.8 of Valentina for Cocoa we greatly improving support of Cocoa and Obj-C 2.0 features. For this we have add V4CC/sources/cocoa folder, which contains all additional code for this. In such way, we keep very separate standard Valentina ADK API sources and this additional features sources.
Continue reading [V4CC][New] Extended Support of Cocoa and Obj-C Features
OS X Loads DYLIB from App folder ignoring install_path … Oops?
Our Valentina Studio project has one Application target and dozen of plugins targets. Plugins are made as bundles.
All these targets build products into the same folder “Debug (Native)” or “Release (Universal)”.
Then Run Scripts do copy plugins into App package and using install_name utility correct install paths for them.
Continue reading OS X Loads DYLIB from App folder ignoring install_path … Oops?
XCODE Breakpoints Not Working
Yesterday I have decide to resolve problem with absolutely not working breakpoints in the XCODE 3.2.3 on OS X 10.6 (may be others also) working with our Valentina Studio project.
In the past we also did have such problems, but not so bad. Breakpoints did work sometimes, in worse case we was able to insert DebugStr(“\p”) into code, and that 100% did stop in the debugger as for app, so fot its plugins and for database engine DYLIBs.
And yesterday I have to see the first time that even DebugStr() do not stops. Wow.
I have spent many hours googling about this problem. And have found few key places.
NOW V4CC/iV4CC Works with GarbageCollection-enabled apps also
For this we just have set option GarbageCollection = SUPPORTED for V4CC (32/64) and iV4CC (Dev/Sim) targets. This means that now these frameworks will work in both kinds of apps: GC-enabled and GC-not-enabled.
Note, that internally V4CC still uses retain/release. Also keep in mind that we very recommending to developers manage lifetimes of database objects manually. Just image that you have allow to GarbageCollector manage a VCursor instance. When you think record locks will be released?
[TIP] Protection from SQL Injection Attack.
This tip is expired by article two-steps-forward-to-more-secure-applications. The First part of the article discusses SQL Injection Attack and how to develop code protected from it.
After read of the article you will know that to easy way for protection – is usage of SQL binding. Wow? One more reason to ALWAYS use SQL binding! Other well known reason are
- reduces CPU time as for client so for server, because no string concatenations on the client side, and less job for parser on the server side.
- enables usage of Query Pool, because SQL command is the same byte to byte.
[TIP] Partial Index in Valentina Database.
Today one of user have asked if Valentina supports partial index. Answer is YES OF COURSE, you can easy create a partial index using Table Methods.
Stan Busk says …
Today on RB NUG list was this letter from Stan Busk. Thank you, Stan for nice words.
REAL SQL Server To Leave REAL; Time to Switch to Valentina
I was not entirely surprised to read on the REALbasic NUG that REAL SQL Server would no longer be a REAL Software product but would go back to its original developer, SQLabs. Even with the bundling options available with REALbasic, a database product that cannot differentiate itself cannot survive. Now there is even a special offer for disenfranchised REAL SQL Server users until October 10, 2010. Continue reading REAL SQL Server To Leave REAL; Time to Switch to Valentina
[NEW][API] Valentina.CopyCursorToNewTable()
We introduce a new utility method Valentina.CopyCursorToNewTable(), which is able to save you hundreds of lines of advanced code in your ADK-based applications. This method added into major Valentina ADKs.
You can read detailed description of this new method here.
Linux dlls of Valentina now are signed by soname.
We have improve our Linux projects to use soname for vcomponents dynamic libraries. It will be equal to the name of version, e.g. 4.8.
This will allow resolve problems when on the same linux computer are installed Valentina components of different versions.
NEW TIP about Reindex Event to Improve Performance
Index fragmentation can cause problems with query performance. Indexes therefore need to be occasionally rebuilt. Read the full article in the “Valentina Performance Guide” document.