Freitag, 29. Februar 2008

Blackfish SQL and InterBase from CodeGear

I attend on the EKON12-spring conference this week, like every year. One of my sessions covered about Blackfish SQL, the new database from CodeGear. In the discussion inside the session and after the session in the exhibition-area of the conference I realized that not all have understood the differences between these two databases.

I’ll try to explain it in this blog.

First: InterBase isn’t deprecated! The InterBase-Team works in Scotts Valley on this unmanaged database for the OS Windows, Linux and Solaris (Sparc).

Second: Blackfish SQL is a database for the both frameworks, .net from Microsoft and Java from Sun.

secret It’s not really new, it’s IMO version 8 of JDataStore and this mean you will get a very stable and optimized database! /secret


Well, if you’re a native-win32 developer your first impression is perhaps: “I use InterBase on Windows” and the Blackfish SQL for .net is only for a VCL.net or ASP.net-developer with an ADO.net provider interesting. This isn’t correct.

Codegear of published an interesting article (FAQ) about Blackfish SQL.

Blackfish SQL for .net is ideally suited for

• ASP.net data storage
• embedded .net application
• Delphi application (Win32 and VCL.net)

Blackfish SQL for java is ideally suited for
• Java data storage,
• Embedded Java Swint/SWT apps,
• Java application

InterBase 2007
• Workgroup to Small Enterprise Databaseapplications
• Embedded Apps

OS / Framework

Blackfish SQL for .net

  • .net framework (at the moment not for the CF.net available but I expect a version for this)

Blackfish SQL for Java

  • Java Framework from a big server to a cellphone with JavaVM

InterBase 2007

  • Windows, Linux, Solaris (Sparc) and, new(!), MacOS X


Programming

Blackfish SQL for .net

  • Delphi 2007 (Package.net for .net2 Framework); and C#/VB.net

Blackfish SQL for Java

  • JBuilder and other Java-IDEs

InterBase 2007

  • SQL


Case IDE of (in my Blog I can use the Case with strings… I miss it in Delphi! Nick, I would buy a big bavarian beer for this feature :-) )

  • Delphi for PHP -> InterBase 2007
  • 3rd Rail / Ruby -> InterBase 2007
  • RAD Studio 2007

Asp.net / VCL.net -> Blackfish SQL for .net or InterBase 2007
Win32 -> Blackfish SQL for .net or InterBase 2007

  • JBuilder -> Blackfish SQL for Java or InterBase
End;


You see, both databases have special areas and IMO makes both databases sense because with this YOU can make the choice for the best solution for your customer!

Well, after this short explain of BF <> IB I’ll blog in the next few weeks about more information’s and experience with Blackfish SQL for .net in my blog.

And if you wonder about the "Why BF, compared with other databases on the (.net/Java)-market": There are many reasons and I collect these and will make another blog with answers about this question....(next week )

Stay tuned.

In April I make in Germany a one-day-training with the content “dbx4 (2/3 of the day) and Blackfish SQL for .net (1/3 of the day) @Entwickler-Akademie near Frankfurt.

Donnerstag, 21. Februar 2008

Nevrona have announced Rave 8 today!

Nevrona Designs have announced today the Rave 8 version! NEWS

And they've sent a email to all registered RAVE BEX users, see later the text of the email.

IMO is the Architect-version very interesting because you'll get the EUDL-license for your customer to modify the reports and you'll get the Rave Report Server with unlimited user.
A first-step-article about Rave-Server you'll find here (about V5, I'll update the article asap ).


__________________________________________________________________

Rave Reports 8.0 Announced
==============================
We're happy to announce the release of Rave Reports 8.0 in March, 2008.

Rave Reports 8.0 will be available in 2 new flavors, Developer and
Architect.

Both Developer and Architect will include the Win32 and VCL.NET components
and will support Delphi 4, 5, 6, 7, C++Builder 4, 5 & 6, BDS 2005, 2006 and
RAD Studio 2007.

Rave Reports Architect will further include a license to ship an end user
version of the Rave Reports visual designer with your applications (EUDL)
and an unlimited user version of the Rave Reports Server.

Between now and the release of Rave Reports 8.0, we are offering significant
discounts on pre-order upgrades to all current owners of Rave Reports.

The pre-order prices are as follows:

Rave Reports Developer 8.0: $99 (lists for $299)
Rave Reports Architect 8.0: $199 (lists for $599)

Pre-orders can be placed by visiting http://www.nevrona.com/order

These discounts are our way of thanking our loyal customers who have
supported Nevrona Designs for the 13 years we have been in the Borland and
CodeGear markets. If you are still using an older version of Rave Reports
this is a great opportunity to upgrade to the latest and greatest features
and functionality.


Nevrona Designs Unicode policy
==============================
In line with CodeGear's recent announcement of Unicode support
http://blogs.codegear.com/abauer/category/codegear, Nevrona Designs is
announcing our intention to fully support Unicode as soon as the technology
is released by CodeGear.

Nevrona Designs has a long history of quickly supporting new technologies
with Rave Reports as they have been released by CodeGear (and previously
Borland). We are quite excited about the impact Unicode support will have
on Rave Reports and our support for many new languages and applications
around the world.

Thanks for your support!

_____________________________________
Nevrona Designs - http://www.nevrona.com
1-888-776-4765 (Toll Free in U.S. and Canada)
1-480-491-5492 (U.S.)
sales@nevrona.com

Last Call for EKON SPRING next week

Like on the airport: This is the last call for EKON SPRING ....

I hope to see a lot of delphi developers on the first spring edition of the EKON in Frankfurt next week again. This is my 11th EKON (I've haven't attend only in sep2001) and it's every year a great event with news from Scotts Valley, other Delphi Developers and interesting face-to-face-talks.

I've finished my slides today on the ICE for my session about the database "BlackfishSQL" and beside this topic I'll talk about Rave and the "Oracle of Delphi" (this slides are ready, too).

Sonntag, 27. Januar 2008

Check for a valid printer on the system

Today I've received an interesting problem with one of my applicatons. On a Win2003-Server the application should crash... I tried to reproduce it on my Win2003-System@home and no problem, the data (over dbx4) - connection and the preview or creation of pdf-files, created with Rave Reports (what else ), works on my system fine. On the WinXP on the customer-side it works, too.
The solution was easy, after I noticed that they haven't installed any printer-driver on the system:

include RpDevice in the uses and then you can check before the rave executes the existence of any printer:

if RpDev.InvalidPrinter then
showmessage('no printer'); -> and you should disable the execute of RvProject in the application

The older way with printers count can make trouble with network printers and isn't recommended (RPDev.Printers.Count).

After installation of a small printer driver (I prefer the HP LJ4 for things like this) the application creates reports with Rave on the customers server without any problems....

Montag, 14. Januar 2008

Reader's Choice 2008

From the german "entwickler magazin" is a new Reader's Choice 2008 available, this remembers me on the"Delphi Informant" Readers Choice a long time ago ....(with TurboPower and so on)

Make your choice (if you work with Rave, make sure, that you check Nevrona Rave Reports for the best reporting tool ) and perhaps you'll win RAD Studio 2007, a ticket for the spring editon of EKON in February in Frankfurt or interesting (german) books....

Dienstag, 8. Januar 2008

Rave and delphipraxis.net

Daniel, the adminstrator of the german delphi forum delphipraxis have published some informations about statistiscs of the forum after more then 5 years (congrat Daniel for this friendly an helpfull place in the internet-world for every delphi-developer; and, yeah, I'm member #488 of this community since "5 Jahre, 3 Wochen, 3 Tage")

Especially interesting is the in the 2nd post the search-word "Rave": 11 !

# Begriff Häufigkeit
1 delphi 31.801
2 string 27.290
3 datei 26.631
4 dll 22.553
5 indy 18.343
6 stringgrid 17.215
7 listview 16.497
8 array 16.260
9 programm 15.410
10 form 15.189
11 rave 13.595
12 listbox 13.292
13 dbgrid 12.568
14 text 12.497
15 löschen 11.949
16 sql 11.535
17 xml 11.408
18 url 11.401
19 auslesen 11.256
.........

If you search for Rave-related problems, questions and solutions ....
look into the delphipraxis (if you have problems with german translate with google)

Rave Reports and problems with (HP) printer drivers...

I read sometimes in newsgroups about problems with Rave and printer drivers, especially HP, e.g. 2600.

The interesting thing is, that the customer can print without any problems with MS-office or other application, but with Nevrona Rave Reports there is a Division by zero exception with some drivers. An update of the driver sometimes solves the problem but not 100%.

With the following solution is a workaround available that create the reports without exceptions.

Try this and if you found another problem (or solution, of course ) in this area, write me an email.

Some programming libraries (and perhaps MS-Office?!) contain such procedure

call: Set8087CW($133f);
this disables FPU exceptions....

Normally there is some bad code (in the driver) that is changing the FPU control word to cause it to ignore some exceptions and not properly resetting it.

The default value of Default8087CW is $1332, with the following code you can check it in your pascal-code.

If (Get8087CW and $1F3F) <> $1332)
then ShowMessage(Format('CW=$%4.4x',[Get8087CW]));

To make your rave-reporting with "every" driver stable, the following code should work;

var
CW: Word;
begin
CW := Get8087CW;
try
Set8087CW($133f);
RvProject1.ExecuteReport('Report1');
Set8087CW(CW);
except
..
end;
end;

or the asm-way

asm
FLDCW cw
end;

with C++ the workaround should be the secureFPU (I’m not the C++-expert, I hope this is correct !?)

#include "float.h";
void secureFpu() { _control87(PC_64|MCW_EM,MCW_PC|MCW_EM);}

Another trick especially for HP-printer driver is setting in the application the SkipAbortProc to true:
RPDev.SkipAbortProc := true;
(you must insert the RpDevice-unit)

Now your customer can print with Rave and don't get an exception....