[NEW] SQLite plugin for Valentina Studio Pro (!!!)

In v4.8 we introduce PREVIEW of a new Valentina Studio Pro plugin – SQLite. We do this on few reasons:

1) Around Valentina DB exists many IDEs where SQLite is integrated on default. So we have quite often case when Lite developer want switch to Valentina DB.

2) We going to open Valentina Reports to users of other databases also. First of them with be users of SQLite. So it will be comfortable for them to be able use Valentina Studio to design REPORTS, and in the same time manage their SQLite dbs. The second our step will be – to add other dbs (Postgre, MS SQL, ODBC, …) and also integrate them into Valentina Studio, at least via our ODBC plugin.

Continue reading [NEW] SQLite plugin for Valentina Studio Pro (!!!)

[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;

Continue reading [V4CC][NEW] KVC for VCursor and VTable.

[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.

Continue reading XCODE Breakpoints Not Working

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.

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.