[NEW][C++] set of MACROS as GET_STRING( cursor, field_name)

Problem is that if you are a C++ developer and use VSDK for development,
then work with Values of Fields of cursor looks as:

I_Cursor_Ptr pCursor = db->SqlSelect( ... );
...
 String s = pCursor->get_Field("Name"  )->get_Value()->get_String();
 double d = pCursor->get_Field("Weight")->get_Value()->get_Double();
...

In contrast, for such languages as REALbasic or VB syntax is more short:

  String str = pCursor.StringField( "fldName" ).value

We have decide that for C++ developer we can have set of simple macros that will allow C++ developer syntax as:

  String str = GET_STRING( pCursor, "fldName" );

These macros are located in the:  sources/FBL/VShared/VSQL/publ/Interfaces/VSQL_I_Cursor.h

Note, that more complex values as DateTime, Binary, still should be used in old way, because VSDK do not know format you goingto use. May be you can add own macroses in your project that looks similar and do job you need.

[NEW][C++] Family of toValue_xxx() factories for simple SQL binding

Now C++ developer can write simpler code as

ArrayOfValues_Ptr pValues = new ArrayOfValues();
        pValues->AddItem( toValue_varchar(mName) );
        pValues->AddItem( toValue_double(70.5) );
        pValues->AddItem( toValue_long(size) );

Instead of:

ArrayOfValues_Ptr pValues = new ArrayOfValues();

       Value_varchar* pValueName = new Value_varchar();
       pValueName->put_String( mName.begin(), mName.end() );
       pValues->AddItem( pValueName );

       Value_double* pValueD = new Value_double();
       pValueD->put_Double( 70.5 );
       pValues->AddItem( pValueD );
       ...

Converting FileMaker Pro Databases into LiveCode Applications

David Simpson has written an excellent article over on Omegabundle.com called Converting FileMaker Pro Databases into LiveCode Applications. dot com Solutions makes a powerful utility product called FmPro Migrator Platinum Edition that is a part of the latest Omegabundle for LiveCode 4.2011 offering.  More than a utility, its really a one of a kind solution for porting Apple FileMaker Pro and Microsoft Access databases into full LiveCode applications, which in turn makes it possible to port the data store over to Valentina DB.

Omegabundle 2011 for REAL Studio Developers Extended to 2.14.2011

A group of developer tool makers that support REAL Studio have put together a fantastic bundle of $3200 of pro tools for only $399 – the Omegabundle. This offer lasts only through 2.14.2011 – ie Valentine’s Day. Continue reading Omegabundle 2011 for REAL Studio Developers Extended to 2.14.2011

Paradigma Software Participates in Omegabundle 2011 for REAL Studio

Paradigma Software has joined with a group of professional development tool vendors to produce and release Omega Bundle 2011 for the REAL Studio environment. This limited time package contains $3200 worth of tools but available in this set for $399 – over 80% savings.

Continue reading Paradigma Software Participates in Omegabundle 2011 for REAL Studio

[NEW][V4CC] Interface Builder Plugin – Zero Lines of Code!

In version 4.8 we add one more cool feature to Valentina for Cocoa (V4CC) ADK – Interface Builder plugin!

V4CC Interface Builder Plugin allows you to develop a Cocoa application with embedded V4CC.framework without writing any code to link GUI with a Valentina database. Instead you will use bindings and few Valentina Controllers.

You can read Manual of V4CC IB plugin and learn few tutorial lessons.

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