<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7278166498489373411</id><updated>2011-11-27T15:18:52.168-08:00</updated><title type='text'>Firebird with Delphi power</title><subtitle type='html'>The power within Firebird...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1364169006187363509</id><published>2010-01-05T05:24:00.000-08:00</published><updated>2010-01-05T05:35:32.421-08:00</updated><title type='text'>ZeosDBO 6.6.6 is Out</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Zeos Development Team announce the reelase of &lt;a href="http://zeosdownloads.firmos.at/downloads/releases/ZEOSDBO-6.6.6-stable.zip"&gt;ZeosDBO 6.6.6 -stable&lt;/a&gt; and the &lt;a href="http://zeosdownloads.firmos.at/downloads/releases/ZEOSDBO-7.0.0-alpha.zip"&gt;alpha version of ZeosDBO 7.0&lt;/a&gt;. The maintenance version of ZeosDBO 6.6.6 already include the bug fix of the Firebird CTE (Common Table of Expression) bug that I already describe earlier in this blog. So hope this new year update from Zeos Development Team can be a new year gift for us. Happy New Year 2010 everyone!!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1364169006187363509?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1364169006187363509/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1364169006187363509' title='36 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1364169006187363509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1364169006187363509'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2010/01/zeosdbo-666-is-out.html' title='ZeosDBO 6.6.6 is Out'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8569124633673707054</id><published>2009-12-21T23:47:00.000-08:00</published><updated>2009-12-22T00:32:26.264-08:00</updated><title type='text'>Fixed CTE bug with ZeosDBO</title><content type='html'>Today I check my email and I receive an email from Mark Daems (MVP of &lt;a href="http://zeos.firmos.at/portal.php"&gt;Zeos Component&lt;/a&gt;) and he inform me that the bug related with CTE (Common Table of Expression, the new Firebird 2.1 feature) already fixed, and I'm so happy that I can now use CTE feature with Zeos component without any problem. If you also use Zeos component then here is the fix:&lt;br /&gt;&lt;br /&gt;Open ZAbstractRODataset.pas and make this patch and then recompile ZeosDBO.bpg:&lt;br /&gt;{ Initializes field and index defs. }&lt;br /&gt;- InternalInitFieldDefs;&lt;br /&gt;+ if not FRefreshInProgress then&lt;br /&gt;+ InternalInitFieldDefs;&lt;br /&gt;&lt;br /&gt;if DefaultFields and not FRefreshInProgress then&lt;br /&gt;CreateFields;&lt;br /&gt;&lt;br /&gt;The (-) sign is the row of code that deleted and the (+) sign is the new one that added. The bug that I already found is in &lt;a href="http://zeosbugs.firmos.at/view.php?id=177"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8569124633673707054?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8569124633673707054/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8569124633673707054' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8569124633673707054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8569124633673707054'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2009/12/fixed-cte-bug-with-zeos.html' title='Fixed CTE bug with ZeosDBO'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5796490175532481470</id><published>2009-05-21T04:44:00.000-07:00</published><updated>2009-05-21T05:01:12.918-07:00</updated><title type='text'>Firebird Configuration Tool</title><content type='html'>Do you always make a change in Firebird database configuration setting? &lt;a href="http://jhonny.clubdelphi.com/firebirdconfig-english/"&gt;This nice &amp; handy tool&lt;/a&gt; will safe you if you're a beginner or perhaps want to have more organize tool to edit the Firebird database configuration. That tool for me is more convenient than edit it manually with my favourite editor &lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;Notepad++&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;What is Firebird database configuration setting? it's a "firebird.conf" file in your Firebird installation directory, it's a ordinary text file with some setting that effect the behaviour of your Firebird database. So thank's to Jhonny Suárez for his great contribution tool for Firebird communities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5796490175532481470?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5796490175532481470/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5796490175532481470' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5796490175532481470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5796490175532481470'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2009/05/firebird-configuration-tool.html' title='Firebird Configuration Tool'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2222976285524112199</id><published>2009-03-10T02:18:00.000-07:00</published><updated>2009-03-10T02:26:53.388-07:00</updated><title type='text'>Time to switch to ZeosDBO</title><content type='html'>Long time I not write in this blog. After I read in FirebirdNews.com that said &lt;a href="http://www.ibobjects.com/"&gt;IBObject&lt;/a&gt; (a component to direct access to Firebird/Interbase) is no longer free, it is due to the author problem that said in this &lt;a href="http://tech.groups.yahoo.com/group/IBObjects/message/43559"&gt;IBObject support list&lt;/a&gt;. So why not switch to ZeosDBO that for long time ago always open source product and free. Now Zeos still in development in version 7 that will support BDS 2009 and the snapshot already can be used for experimentally. Here is the link to the &lt;a href="http://zeosforum.net.ms/"&gt;Zeos forum&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2222976285524112199?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2222976285524112199/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2222976285524112199' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2222976285524112199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2222976285524112199'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2009/03/time-to-switch-to-zeosdbo.html' title='Time to switch to ZeosDBO'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2317614892120732417</id><published>2008-11-19T02:37:00.000-08:00</published><updated>2008-11-19T02:57:32.993-08:00</updated><title type='text'>count(*) VS count(somefield)</title><content type='html'>What is the difference between "select count(*) from sometable" and "select count(somefield) from sometable"? The answer is simple, the "count(*)" will count all the record on that table. The "count(somefield)" will count all the record which is that field is not null. So the result of that 2 query may different.  Example:&lt;br /&gt;I have a table foo which has the record like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;id   name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1&amp;nbsp;&amp;nbsp;XXXXX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2&amp;nbsp;&amp;nbsp;YYYYY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3&amp;nbsp;&amp;nbsp;&lt;null&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4&amp;nbsp;&amp;nbsp;&lt;null&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;select count(*) as cntall, count(name) as cntname from foo&lt;br /&gt;The result of the above query is:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cntall    cntname&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2 &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2317614892120732417?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2317614892120732417/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2317614892120732417' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2317614892120732417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2317614892120732417'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/11/count.html' title='count(*) VS count(somefield)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8148210430756379286</id><published>2008-09-14T18:45:00.000-07:00</published><updated>2008-09-14T18:56:06.257-07:00</updated><title type='text'>The Future of Zeos</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here is the link about &lt;a href="http://zeos.firmos.at/viewtopic.php?p=7874#7874"&gt;the future development of Zeos&lt;/a&gt;. Thank's Mark for the news :) also I hear from Mark (ZeosLib Most Valuable Person) that he receive invitation to attend in Firebird Conference!! it's look that Zeos get famous among Firebird user that use Delphi or Lazarus. It's a great news, you must attend Mark :) we support you.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8148210430756379286?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8148210430756379286/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8148210430756379286' title='39 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8148210430756379286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8148210430756379286'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/09/future-of-zeos.html' title='The Future of Zeos'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5361442750965060897</id><published>2008-08-10T18:03:00.000-07:00</published><updated>2008-08-10T18:28:56.272-07:00</updated><title type='text'>08.08.08 Version Phenomena</title><content type='html'>08.08.08 is a lucky number in Chineese tradition as in the opening of the Beijing Olympic 2008. But also many software that release it stable version on that day :) for example here is my favourite software that has 08.08.08 release version:&lt;br /&gt;1. &lt;a href="http://zeos.firmos.at/portal.php"&gt;ZeosDBO&lt;/a&gt; (look at my previous posting)&lt;br /&gt;2. &lt;a href="http://www.cnpack.org/showdetail.php?id=580&amp;amp;lang=en"&gt;CnPack IDE Wizards&lt;/a&gt; (open source Delphi add-on like GExpert)&lt;br /&gt;3. &lt;a href="http://www.ibexpert.com/downloadcenter"&gt;IBExpert Personal Edition&lt;/a&gt; (free version of IBExpert, the famous Firebird GUI management)&lt;br /&gt;&lt;br /&gt;If you also use that software then probably you want to check out it's new version :) Happy download and wish Beijing Olympic 2008 held with success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5361442750965060897?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5361442750965060897/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5361442750965060897' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5361442750965060897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5361442750965060897'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/08/080808-version-phenomena.html' title='08.08.08 Version Phenomena'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5545309065143018422</id><published>2008-08-08T01:00:00.000-07:00</published><updated>2008-08-08T01:10:04.876-07:00</updated><title type='text'>ZeosDBO 6.6.3-stable is Released</title><content type='html'>Today (the same day with the opening of the Beijing Olympic Games 2008) ZeosLib version 6.6.3 stable is officialy release. The list of the download files (the component itself and the documentation) can be found &lt;a href="http://zeos.firmos.at/viewtopic.php?t=1938"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thank's for this great components. Bravo ZeosLib Development Team!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5545309065143018422?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5545309065143018422/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5545309065143018422' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5545309065143018422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5545309065143018422'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/08/zeosdbo-663-stable-is-released.html' title='ZeosDBO 6.6.3-stable is Released'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6898651167453837984</id><published>2008-07-31T02:17:00.000-07:00</published><updated>2008-08-04T19:04:44.284-07:00</updated><title type='text'>ZeosDBO 6.6.3-stable Snapshot is Out</title><content type='html'>Hi, there is a good news :) finally zeos version 6.6.3-stable is out (the snapshot/draft version)!! You can download it &lt;a href="http://zeosdownloads.firmos.at/downloads/snapshots/DRAFT-ZEOSDBO-6.6.3-stable.zip"&gt;here &lt;/a&gt;The official release maybe will released on 8-8-2008 (Opening of the Beijing Olympic :D). For now there is some documentation work on it.&lt;br /&gt;Now Zeos can work with Firebird 2.1, just use the 2.0 protocol to connect :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6898651167453837984?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6898651167453837984/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6898651167453837984' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6898651167453837984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6898651167453837984'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/07/zeosdbo-663-stable-is-out.html' title='ZeosDBO 6.6.3-stable Snapshot is Out'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8986801172413085178</id><published>2008-07-17T18:51:00.000-07:00</published><updated>2008-07-17T19:15:03.589-07:00</updated><title type='text'>Zeos is Now Ready for FB 2.1.1</title><content type='html'>Yippi, yesterday I try to convert my old FB 2.0 database to Fb 2.1.1 version. Then use Delphi with Zeos version 6.6.2-rc to connect it (with the old Firebird-2.0 protocol) and... magic.. it's now connected without problem.&lt;br /&gt;&lt;br /&gt;The first FB 2.1 version has a problem when attempt first connect to the database but the version 2.1.1 seem already fix that bug, as in the Zeos forum "Seawolf" analyze that &lt;span id="postmessage_7558"&gt;&lt;span class="postbody"&gt;"(CORE-1868) The server could crash in isc_dsql_free_statement(). fixed by A. Peshkof" is the problem that make Zeos crash at first connection to the DB. &lt;a href="http://zeos.firmos.at/viewtopic.php?t=1825&amp;amp;start=30&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight="&gt;Here is the link&lt;/a&gt; to the discussion about this problem in Zeos forum. So if you want to use the Firebird 2.1 version with Zeos then move to Firebird version 2.1.1&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8986801172413085178?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8986801172413085178/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8986801172413085178' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8986801172413085178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8986801172413085178'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/07/zeos-is-now-ready-for-fb-211.html' title='Zeos is Now Ready for FB 2.1.1'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1797642798757914461</id><published>2008-07-16T19:12:00.000-07:00</published><updated>2008-07-17T19:17:20.687-07:00</updated><title type='text'>Firebird  2.1.1 is Released</title><content type='html'>The first update release of the Firebird database version 2.1 is released now. From the documentation about the bugs fix that I read is that many bugs fix that back ported from version 2.5. Here is the link to the &lt;a href="http://www.firebirdsql.org/index.php?op=files&amp;amp;id=engine_211"&gt;download section&lt;/a&gt; of Firebird 2.1.1. As I try at this moment of this writing article, the link for installer FB2.1.1Win32 is seem broken.&lt;br /&gt;&lt;br /&gt;(It's now fixed as soon as I report this to the Firebird support mailing list, thank you to all of the guys there)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1797642798757914461?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1797642798757914461/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1797642798757914461' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1797642798757914461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1797642798757914461'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/07/firebird-211-is-released.html' title='Firebird  2.1.1 is Released'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-3172273186703535909</id><published>2008-06-12T18:11:00.000-07:00</published><updated>2008-06-12T20:05:45.208-07:00</updated><title type='text'>Jim Starkey leave MySQL</title><content type='html'>Today I look a news from firebirdnews and know that Jim (father of Interbase) leave MySQL, many people think what the next things (new technology) that may Jim develop? You can read the news in &lt;a href="http://www.theopenforce.com/2008/06/falcon-and-jim.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-3172273186703535909?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/3172273186703535909/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=3172273186703535909' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3172273186703535909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3172273186703535909'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/06/jim-starkey-leave-mysql.html' title='Jim Starkey leave MySQL'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2094301640174064078</id><published>2008-06-10T22:46:00.000-07:00</published><updated>2008-06-10T23:03:25.953-07:00</updated><title type='text'>Zeos movement supporting FB 2.1</title><content type='html'>There is an active discussion about development of ZeosLib to support FB 2.1 , for the moment FB 2.1 is not supported yet. The discussion is in this &lt;a href="http://zeos.firmos.at/viewtopic.php?t=1825&amp;amp;start=0&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight="&gt;link&lt;/a&gt;. Want some challange to support this development? The development team always welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2094301640174064078?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2094301640174064078/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2094301640174064078' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2094301640174064078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2094301640174064078'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/06/zeos-movement-supporting-fb-21.html' title='Zeos movement supporting FB 2.1'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6742552915653837579</id><published>2008-05-26T19:25:00.000-07:00</published><updated>2008-05-26T19:28:10.601-07:00</updated><title type='text'>Firebird RDBMS, Vote it</title><content type='html'>And the last to vote is Firebird RDBMS the winner of "Best User Support" and "Best Project for The Enterprise" in Sourceforge Community Choice Awards 2007&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/awards/cca/?group_id=9028"&gt;&lt;img src="http://sourceforge.net/awards/cca/badge_img.php?group_id=9028&amp;amp;style=5" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6742552915653837579?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6742552915653837579/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6742552915653837579' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6742552915653837579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6742552915653837579'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/firebird-rdbms-vote-it.html' title='Firebird RDBMS, Vote it'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4299247151513784953</id><published>2008-05-26T19:16:00.000-07:00</published><updated>2008-05-26T19:21:44.011-07:00</updated><title type='text'>ZeosDBO Project, Vote it</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here again, vote for Zeos Database Object (ZeosDBO) the database components for MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle and SQLite for Delphi, FreePascal/Lazarus, Kylix and C++ Builder. Nominate as   "Best Tool or Utility for Developers"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/awards/cca/?group_id=35994"&gt;&lt;img src="http://sourceforge.net/awards/cca/badge_img.php?group_id=35994&amp;amp;style=5" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4299247151513784953?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4299247151513784953/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4299247151513784953' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4299247151513784953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4299247151513784953'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/zeosdbo-project-vote-it.html' title='ZeosDBO Project, Vote it'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5841679558326058531</id><published>2008-05-26T19:04:00.000-07:00</published><updated>2008-05-26T19:19:40.373-07:00</updated><title type='text'>DelphiCodeToDoc, Vote it</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hi all, I use this utility to make a documentation in my project, please vote it if you like it. Hope you like it, because it's a nice tool :D nominate as  "Best Tool or Utility for Developers"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/awards/cca/?group_id=96281"&gt;&lt;img src="http://sourceforge.net/awards/cca/badge_img.php?group_id=96281&amp;amp;style=5" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5841679558326058531?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5841679558326058531/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5841679558326058531' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5841679558326058531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5841679558326058531'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/delphicodetodoc-vote-it.html' title='DelphiCodeToDoc, Vote it'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-3506024355918637712</id><published>2008-05-21T22:44:00.000-07:00</published><updated>2008-05-21T23:10:37.489-07:00</updated><title type='text'>Zeos 6.6.3-rc(Rev368) ZIBEventAlerter</title><content type='html'>Yesterday I had a chat with "mdaems" one of the ZeosLib developer, and now I know how this new component work :D. Here are the steps that you must follow:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Drop the ZIBEventAlerter to your form and attach connection property to ZConnection&lt;/li&gt;&lt;li&gt;Add events name in the Events property of ZIBEventAlerter (one line for one event)&lt;/li&gt;&lt;li&gt;Set AutoRegister property of ZIBEventAlerter to false (because it still not work correctly even if you set it to true)&lt;/li&gt;&lt;li&gt;Set Registered property of ZIBEventAlerter to false (if you set it to true it will create AV when your application start because it will register the event before the connection establish)&lt;/li&gt;&lt;li&gt;Call RegisterEvents method of ZIBEventAlerter in OnAfterConnect event of ZConnection&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;procedure TForm1.con1AfterConnect(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  ZIBEventAlerter1.RegisterEvents;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;end;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;It also a good practise to call UnregisterEvents in OnBeforeDisconnect of ZConnection&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;procedure TForm1.con1BeforeDisconnect(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  ZIBEventAlerter1.UnRegisterEvents;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;end;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: arial;"&gt;Write your own action in OnEventAlert method of&lt;/span&gt;  &lt;/span&gt;ZIBEventAlerter &lt;/li&gt;&lt;li&gt;Run your appication and see the magic :)&lt;/li&gt;&lt;/ol&gt;This component also still need refactoring to became more generic, because the heart of Zeos is can be used with more than 1 database. So this component is still in development, but you can use for Firebird/Interbase right now :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-3506024355918637712?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/3506024355918637712/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=3506024355918637712' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3506024355918637712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3506024355918637712'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/zeos-663-rcrev368-zibeventalerter.html' title='Zeos 6.6.3-rc(Rev368) ZIBEventAlerter'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6620370518991702089</id><published>2008-05-20T21:59:00.001-07:00</published><updated>2008-05-20T22:08:09.447-07:00</updated><title type='text'>Zeos 6.6.3-rc (Rev 368) What's new?</title><content type='html'>There is a good news, in rev 368 there is 1 component added in ZeosLib (beside a lot of bug fixed of dataset problem). It's ZIBEventAlerter. As it sound, it's to catch the event in Firebird or Interbase database. Finally Zeos has it :D but there is still some problem, it's cann't work correctly :(, but it's a good start :D and perhaps some Zeos developers can fix it or some of you want to try to fix it? (challenge for all of guys who read this article ;))&lt;br /&gt;&lt;br /&gt;This is the &lt;a href="http://zeosdownloads.firmos.at/downloads/snapshots/"&gt;link&lt;/a&gt; to the download section of the latest ZeosLib component&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6620370518991702089?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6620370518991702089/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6620370518991702089' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6620370518991702089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6620370518991702089'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/zeos-663-rc-rev-368-whats-new.html' title='Zeos 6.6.3-rc (Rev 368) What&apos;s new?'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-7152241614993047646</id><published>2008-05-18T20:40:00.000-07:00</published><updated>2008-05-18T23:21:38.335-07:00</updated><title type='text'>Firebird History</title><content type='html'>It's nice to know how it become a Firebird, here is the history of Firebird that I copied from Firebird official website.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1976-1981: Jim Starkey wrote Datatrieve at DEC.&lt;/li&gt;&lt;li&gt;  1981-1984: DEC started RDB, their first relational database. Jim got impatient and started coding his own version, named JRD.&lt;/li&gt;&lt;li&gt;1983: Philippe Kahn founded Borland International.&lt;/li&gt;&lt;li&gt;1984-1985: Jim Starkey, Ann Harrison and Don Depalma signed contract with Apollo Computer, a workstation company, founding Groton Database Systems.&lt;/li&gt;&lt;li&gt;1985: Dave Root left Apollo to become the fourth founder.&lt;/li&gt;&lt;li&gt;1986: Groton became Interbase and grew for 5 years.&lt;/li&gt;&lt;li&gt;1986: Interbase 2.&lt;/li&gt;&lt;li&gt;1986: Ashton-Tate invested in Interbase.&lt;/li&gt;&lt;li&gt;1988: Interbase 3.&lt;/li&gt;&lt;li&gt;1988, summer: Cognos started working with IB.&lt;/li&gt;&lt;li&gt;1988: Ashton-Tate purchased 51% of Interbase.&lt;/li&gt;&lt;li&gt;1989: Cognos released StarBase on VAX/VMS., based on IB 2.X.&lt;/li&gt;&lt;li&gt;1991: StarBase was offered by Cognos on HP-UX, DG/UX, Ultrix, SunOS/Solaris, AIX and SCO, based on IB 3.X.&lt;/li&gt;&lt;li&gt;1991: Ashton-Tate purchased all of Interbase.&lt;/li&gt;&lt;li&gt;1991, October: Borland bought Ashton-Tate.&lt;/li&gt;&lt;li&gt;1992, early: Cognos released StarBase for HP MPE/XL.&lt;/li&gt;&lt;li&gt;1992: Interbase 3.3 was released in June. This was the first version with International European support. Followed the release of v3.2J (Japanese only release).&lt;/li&gt;&lt;li&gt;1992, late: Cognos stopped using the name StarBase and continued with the IB name.&lt;/li&gt;&lt;li&gt;1994: Interbase 4 appears.&lt;/li&gt;&lt;li&gt;1995, January 9: Borland ships Interbase 4.0 WorkGroup Server for Win NT and for Novell Netware.&lt;/li&gt;&lt;li&gt;1995, February 10: Borland launches WWW site.&lt;/li&gt;&lt;li&gt;1995, April 24: Borland sells Delphi 1 C/S. Interbase 4.0C is included.&lt;/li&gt;&lt;li&gt;1995, September 15: Interbase unveils InterClient.&lt;/li&gt;&lt;li&gt;1995, September 25: Magnavox selects IB4 in $3.5 million database deal for U.S. Army. Borland announces InterBase 4 for Unix.&lt;/li&gt;&lt;li&gt;1995, October 19: Ernst &amp;amp; Young Consulting wins ACS Software Challenge using Borland's Delphi and InterBase.&lt;/li&gt;&lt;li&gt;1995, December 15: Borland announces exclusive agreement with premier system integrator in Japan - Rios Corporation. This is the origin of IB4 for Linux and FreeBSD at Rios Corporation.&lt;/li&gt;&lt;li&gt;1996, March 4: Borland announces availability of Delphi 2. Interbase 4.1 is included.&lt;/li&gt;&lt;li&gt;1996, May 29: Borland announces InterClient, the JDBC driver for Interbase.&lt;/li&gt;&lt;li&gt;1996, July: Gary Wetsel resigns as Borland CEO. William F. Miller is named interim CEO.&lt;/li&gt;&lt;li&gt;1996, August 20: Borland announces Interbase 4.2.&lt;/li&gt;&lt;li&gt;1996, September 25: Whitney G. Lynn is named interim president and CEO. Paul Gross, senior VP of R&amp;amp;D, resigns.&lt;/li&gt;&lt;li&gt;1996, October 21: Corel licenses Paradox database from Borland.&lt;/li&gt;&lt;li&gt;1996, October 30: Borland ships IB 4.2.&lt;/li&gt;&lt;li&gt;1996, November 7: Philippe Kahn, founder of Borland, resigns as Director.&lt;/li&gt;&lt;li&gt;1996, November 25: Delbert W. Yocam is appointed Chairman and CEO.&lt;/li&gt;&lt;li&gt;1996, December: Jason Wharton delivers IB_Objects (IBO) 1.0.&lt;/li&gt;&lt;li&gt;1997, January 17: Borland awards a worldwide software and trademark master license for ReportSmith to Strategic Reporting Systems.&lt;/li&gt;&lt;li&gt;1997, February 26: Borland ships BCB 1.&lt;/li&gt;&lt;li&gt;1997, April 29: Borland forms ISC subsidiary to expand market opportunity for its InterBase product.&lt;/li&gt;&lt;li&gt;1997, May 5: Borland announces Delphi 3 C/S Suite. Interbase 4.2 is included with Delphi 3.&lt;/li&gt;&lt;li&gt;1997, July 15: Corel licenses SQL Builder, Interbase, LIBS and SQL Links from Borland to include them in Corel Paradox 8.&lt;/li&gt;&lt;li&gt;1997, September 15: Interbase unveils InterClient ready to ship.&lt;/li&gt;&lt;li&gt;1997, December 1: Interbase 5.0 is released.&lt;/li&gt;&lt;li&gt;1998, February 10: Borland announces BCB 3. With BCB, Interbase 5 is included.&lt;/li&gt;&lt;li&gt;1998, June 8: Borland international stockholders approve name change to Inprise Corporation.&lt;/li&gt;&lt;li&gt;1998, August 5: Interbase 5.1.1 is included with Delphi 4.&lt;/li&gt;&lt;li&gt;1998, August 12: Inprise transfers Visual dBase to Interbase subsidiary.&lt;/li&gt;&lt;li&gt;1998, August 20: Interbase 5 for Linux is announced.&lt;/li&gt;&lt;li&gt;1999, January 27: Inprise creates two separate divisions: Inprise and borland.com. Jim Weil, president of Interbase, is named president of the Inprise division. John Floisland, senior VP of worldwide marketing, is named president of borland.com.&lt;/li&gt;&lt;li&gt;1999, February 2: Inprise launches borland.com. Interbase 5.5 is included with BCB4.&lt;/li&gt;&lt;li&gt;1999, March: FIBPlus version 1 by Serge Buzadzhy.&lt;/li&gt;&lt;li&gt;1999, March 12: Inprise licenses Visual dBase to Ksoft, Inc.&lt;/li&gt;&lt;li&gt;1999, March 31: Inprise announces the resignation of Delbert Yocam (CEO) and the CFO.&lt;/li&gt;&lt;li&gt;1999, April 13: Inprise names Dale Fuller interim President and CEO.&lt;/li&gt;&lt;li&gt;1999, mid: Interbase 6 - kinobi in private beta testing.&lt;/li&gt;&lt;li&gt;1999, June 8: MS and Borland deal. The total value of investment and payment from MS to Inprise is US$125 million. This includes the right to use Inprise-patented technology in MS products.&lt;/li&gt;&lt;li&gt;1999, August: FIBPlus version 2.&lt;/li&gt;&lt;li&gt;1999, September 7: Inprise announces an alliance with Dunstan Thomas Limited to provide professional services for Inprise technology in the UK, Nordic, Benelux and Eastern European regions. Dunstan Thomas is an Interbase partner, too.&lt;/li&gt;&lt;li&gt;1999, September 10: Inprise ships Delphi 5 with Interbase 5.5.&lt;/li&gt;&lt;li&gt;1999, October 25: Interbase 5.6 available on Novell Netware 4.2 and 5.0 and Windows platforms (32 bits). IB5.6 was offered as a free upgrade for IB5.X licensees on Windows; for the first time a free upgrade.&lt;/li&gt;&lt;li&gt;1999, December 14: The resignation of 3 key people at ISC (Bill Karwin, Paul Beach and Wayne Ostiguy) halts Interbase development.&lt;/li&gt;&lt;li&gt;1999, December 17: Greg Deatz discovers the facts and posts to Mers with "Bad rumors abound" subject. Steve Tendon coined the term "black Friday" to refer to the exact date when the bad news were known. (Ironically, this day was my birthday, so I couldn't receive a worst gift.) First fiasco. Tidal waves start flooding Borland newsgroups. The "SaveInterbase" emailing list is created by Helen Borrie to avoid losing IB forever. The IBDI Group (IB Developer's Initiative) is founded by Helen Borrie, Jason Wharton and Dalton Calford to safeguard the interests of Interbase users.&lt;/li&gt;&lt;li&gt;1999, December 21: Two other ISC engineers resign.&lt;/li&gt;&lt;li&gt;2000, January 3: Borland announces IB6 will be open sourced and challenges other vendors to open-source their database products. SaveInterbase is replaced by IBDI. Borland's shares soar for some weeks as a result of the announcement.&lt;/li&gt;&lt;li&gt;2000, February 7: Corel - Inprise/Borland announce a future merger to create a Linux powerhouse in the next months.&lt;/li&gt;&lt;li&gt;2000, February 14: A new company is being created. Ann Harrison accepts the challenge of being the new ISC President and Jim Starkey will be technical advisor. (Isn't that Apple brought back its former people, too?) A series of IB-*** emailing lists are created with specific purposes.&lt;/li&gt;&lt;li&gt;2000, February 29: Paul Beach named Interbase VP Sales &amp;amp; Marketing.&lt;/li&gt;&lt;li&gt;2000, March, 22: Borland announces availability of BCB5. It ships with Interbase 5.6.&lt;/li&gt;&lt;li&gt;2000, April 27: Due to lobby from some shareholders and users, Borland reevaluates the merger with Corel.&lt;/li&gt;&lt;li&gt;2000, May 16: Borland and Corel terminate proposed merger.&lt;/li&gt;&lt;li&gt;2000, May: FIBPlus version 3.&lt;/li&gt;&lt;li&gt;2000, June 30: Second fiasco. IB6 is not released in time as expected due to pending legal issues.&lt;/li&gt;&lt;li&gt;2000, July 14: Dale Fuller authorizes Cobalt Networks to distribute IB6 binaries with their platforms.&lt;/li&gt;&lt;li&gt;2000, July 25: Inprise and not ISC is the company releasing Interbase 6.0 as a free and open source database, but without the documents and without the basic test suites. Is this a decent and honest open source offering? No ISC exists as an independent or subsidiary company.&lt;/li&gt;&lt;li&gt;2000, July 28: Third fiasco. Ann Harrison resigns to her position of acting as General Manager for the Interbase part of Borland. The deal between ISC and Borland has died. Borland's Ted Shelton delivers an official press release to IB-Architect before the article is posted in the web site. Borland prefers to retain the product "in the interest of shareholders".&lt;/li&gt;&lt;li&gt;2000, July 31: A group of enthusiast people create the Firebird tree at Source Forge, because the Interbase tree doesn't admit external people as developers.&lt;/li&gt;&lt;li&gt;2000, August 23: The IBPhoenix group unveils the www.ibphoenix.com site, with Ann Harrison and Paul Beach among others. Ann states that IBPhoenix is not affiliated with Inprise(r) in any way.&lt;/li&gt;&lt;li&gt;2000, September 8: Inprise publishes an open letter to our InterBase® customers, signed by Frank Slootman VP - Software Products. The person that established the first contact after the ISC deal died, Ted Shelton, is not longer in charge of the engine, because it was transferred to the Business/Enterprise division, even thought the Inprise website doesn't reflect that change at that time.&lt;/li&gt;&lt;li&gt;2000, November 27: Inprise issues a press release, announcing Jon Arthur's promotion to Director of Interbase, reporting to Frank Slootman, VP of Software Products.&lt;/li&gt;&lt;li&gt;2000, December 18: Frank Schlottmann-Goedde spots an hard coded password plus a bizarre internal UDF in IB, while working on the Firebird Project. Those breaches were there since 1994. Inprise is alerted discretely.&lt;/li&gt;&lt;li&gt;2001, January: Inprise is Borland again (BSC).&lt;/li&gt;&lt;li&gt;2001, January: FIBPlus version 4.&lt;/li&gt;&lt;li&gt;2001, January 10: CERT advisory: compiled back door plus doomsday internal UDF in IB made public along with different patches from IBPhoenix and Borland.&lt;/li&gt;&lt;li&gt;2001, January 11: Slashdot devotes a large thread to the backdoor.&lt;/li&gt;&lt;li&gt;2001, January 14: The Register publishes an article about the same security breach.&lt;/li&gt;&lt;li&gt;2001, March 14: Borland comes back to the paid releases.&lt;/li&gt;&lt;li&gt;2001, July 19: IBO v4 is released.&lt;/li&gt;&lt;li&gt;2001, November: Yaffil development is initiated by Aleksey Karyakin and Oleg Loa, based on Firebird, with improved productivity.&lt;/li&gt;&lt;li&gt;2001, December 4: Borland announces IB 6.5. Do not get confused by that press release, however, since the open source version doesn't have the new features listed here. Bill Todd's explanation of the same features is here.&lt;/li&gt;&lt;li&gt;2002, January: IBDI founders announce the dissolution of the group. Technical content moved to the Firebird site.&lt;/li&gt;&lt;li&gt;2002, March 12: Firebird 1.0 Final Release&lt;/li&gt;&lt;li&gt;2002, October 29: Borland announces InterBase v7.&lt;/li&gt;&lt;li&gt;2002, November 20: The FirebirdSQL Foundation is formally incorporated to raise development funds for Firebird.&lt;/li&gt;&lt;li&gt;2003, June 17: Borland announces InterBase v7.1 with support for MS' dot-net.&lt;/li&gt;&lt;li&gt;2003, December 2: Yaffil announces its source code will be merged with Firebird.&lt;/li&gt;&lt;li&gt;2004, February 21: Firebird 1.5 Final Release.&lt;/li&gt;&lt;li&gt;2004, April: Paul Ruizendaal reports that he was able to port Compiere to FB with minimal modifications thanks to his Oracle PL/SQL emulation layer.&lt;/li&gt;&lt;li&gt;2004, May 27: Nigel Weeks releases OpenAspect, a scalable, dependable, high-speed open source business management system, based on FB.&lt;/li&gt;&lt;li&gt;2004, August 2: The Firebird Book by Helen Borrie is published by Apress.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-7152241614993047646?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/7152241614993047646/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=7152241614993047646' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7152241614993047646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7152241614993047646'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/05/firebird-history.html' title='Firebird History'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1510649950884096671</id><published>2008-04-17T21:06:00.000-07:00</published><updated>2008-04-17T21:16:13.862-07:00</updated><title type='text'>FB 2.1 Week of Year Feature</title><content type='html'>I already installed it and try it a while, and the first thing I try is extract week. Now in FB 2.1 it supported week of year (base on ISO-8601)!!. So my past article is more simple to do :) the new syntax is:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;extract(week from &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;some_date_field&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1510649950884096671?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1510649950884096671/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1510649950884096671' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1510649950884096671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1510649950884096671'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/04/fb-21-week-of-year-feature.html' title='FB 2.1 Week of Year Feature'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4162931592131717997</id><published>2008-04-17T19:33:00.000-07:00</published><updated>2008-04-17T19:42:59.466-07:00</updated><title type='text'>FB 2.1 is released!!!</title><content type='html'>Hey, FB 2.1 is released today!! Get it &lt;a href="http://firebirdsql.org/index.php?op=files&amp;amp;id=engine_210"&gt;HERE&lt;/a&gt;. Let share new feature after I try to play with this version :D  Any idea?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4162931592131717997?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4162931592131717997/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4162931592131717997' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4162931592131717997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4162931592131717997'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/04/fb-21-is-released.html' title='FB 2.1 is released!!!'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1715114733631621206</id><published>2008-04-17T18:14:00.000-07:00</published><updated>2008-04-17T19:24:16.550-07:00</updated><title type='text'>Get a week of year in Firebird PSQL</title><content type='html'>&lt;div style="text-align: justify;"&gt;2008 is now a busy year for me hehehe, long time not post an article again, mm... I want to share some technique in FB to get a week of year (I use it for my last project), I read a nice article from &lt;a href="http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm#_code3_weekofyear"&gt;this site&lt;/a&gt; and see that in &lt;a href="http://tracker.firebirdsql.org/browse/CORE-663"&gt;FB tracker&lt;/a&gt; there is a discussion about this stuff.  The simple PSQL technique that I had learn is:&lt;br /&gt;&lt;pre&gt;(EXTRACT(YEARDAY FROM &lt;var&gt;D&lt;/var&gt;) - EXTRACT(WEEKDAY FROM &lt;var&gt;D&lt;/var&gt;-1) + 7) / 7&lt;/pre&gt;It can give us the week of year, but I also need the start and the end of that week, so I must think about this and I found a solution, here I capture some code from my project to know the start date and end date of that week of year&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rangetglawal = cast((extract(year from &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;D&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;)) || '.01.' || '01' as date);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rangetglawal = rangetglawal - extract(weekday from rangetglawal);&lt;br /&gt;week = (EXTRACT(YEARDAY FROM &lt;span style="font-style: italic;"&gt;D&lt;/span&gt;) - EXTRACT(WEEKDAY FROM (&lt;span style="font-style: italic;"&gt;D&lt;/span&gt;-1))+7)/7 +1;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;viStartWeek = ((EXTRACT(YEARDAY FROM rangetglawal) - EXTRACT(WEEKDAY FROM (rangetglawal-1))+7)/7+1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;extract(year from &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;D&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;=cast(extract(year from rangetglawal)as varchar(4))) then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  "viTempWeek" = week - "viStartWeek"-1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rangetglawal = rangetglawal + ("viTempWeek"*7)+1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;end else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  rangetglawal=rangetglawal+((week-1)*7)+1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rangetglakhir=rangetglawal+6;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The start date of that week will be in "rangetglawal" variable and the end of that week will be in "rangetglakhir" variable. I add plus 1 in the original code for get a week of year because the original code will result 0 for first week, and I want it to start from 1.&lt;br /&gt;&lt;br /&gt;Enjoy this code and perhaps it can be usefull.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1715114733631621206?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1715114733631621206/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1715114733631621206' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1715114733631621206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1715114733631621206'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/04/get-week-of-year-in-firebird-psql.html' title='Get a week of year in Firebird PSQL'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-600361389392350989</id><published>2008-01-25T17:03:00.000-08:00</published><updated>2008-01-25T17:08:24.159-08:00</updated><title type='text'>FBCopy 1.7 released (FB tool)</title><content type='html'>FBCopy version 1.7 is released. FBCopy is a tool for Firebird. What this tool does? According to it's readme file, this tool is for copy data between Firebird tables and databases. FBCopy is a command-line tool, so you can use it inside batch scripts, cron jobs, etc. Currently, Linux and Windows versions are available.&lt;br /&gt;&lt;br /&gt;The capabilities are:&lt;br /&gt;* copying data between databases (sorted by dependency tree)&lt;br /&gt;* copying generator values (since version 1.70)&lt;br /&gt;* comparing table fields&lt;br /&gt;* comparing data (with detailed output in HTML)&lt;br /&gt;* open source under MIT license&lt;br /&gt;* cross platform - works on Windows and Linux&lt;br /&gt;* works with all Firebird versions (tested 1.0 - 2.1)&lt;br /&gt;* easy to integrate into batch jobs&lt;br /&gt;* light for remote use via SSH&lt;br /&gt;&lt;br /&gt;You can download this nice tool in &lt;a href="http://www.firebirdfaq.org/files/fbcopy-1.70.tgz"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-600361389392350989?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/600361389392350989/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=600361389392350989' title='3 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/600361389392350989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/600361389392350989'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/01/fbcopy-17-released-fb-tool.html' title='FBCopy 1.7 released (FB tool)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-914283241598663408</id><published>2008-01-23T17:01:00.000-08:00</published><updated>2008-01-23T17:20:10.516-08:00</updated><title type='text'>New Little Feature in Zeos</title><content type='html'>Hi, there are 2 new methods on TZConnection component, they are:&lt;br /&gt;&lt;br /&gt;function ExecuteDirect(SQL : String) : boolean;&lt;br /&gt;function ExecuteDirect(SQL:string; var RowsAffected:integer):boolean;&lt;br /&gt;&lt;br /&gt;That methods are to execute SQL DDL statement directly without need of TZQuery.&lt;br /&gt;You can try and test this new feature in the &lt;a href="http://zeosdownloads.firmos.at/downloads/snapshots/"&gt;Zeos testing Rev337&lt;/a&gt;. If the method not act correctly, you can tell us in the &lt;a href="http://zeos.firmos.at/viewtopic.php?p=6491#6491"&gt;forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-914283241598663408?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/914283241598663408/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=914283241598663408' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/914283241598663408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/914283241598663408'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/01/new-little-feature-in-zeos.html' title='New Little Feature in Zeos'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6619778522842278672</id><published>2008-01-23T16:58:00.000-08:00</published><updated>2008-01-23T17:00:51.794-08:00</updated><title type='text'>Firebird Roadmap 2008</title><content type='html'>The Firebird project already release the FB 2.1 RC1 (vailable for field testing on 64-bit and 32-bit Windows and Linux (MacOSX to follow soon)) and also their &lt;a href="http://www.firebirdsql.org/index.php?op=devel&amp;amp;sub=engine&amp;amp;id=roadmap_2008&amp;amp;nosb=1"&gt;roadmap&lt;/a&gt; in 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6619778522842278672?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6619778522842278672/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6619778522842278672' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6619778522842278672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6619778522842278672'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/01/firebird-roadmap-2008.html' title='Firebird Roadmap 2008'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-9146693267197444982</id><published>2008-01-17T00:18:00.000-08:00</published><updated>2008-01-17T01:12:29.375-08:00</updated><title type='text'>BLOB Field using ZeosDBO 6.6.x</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hi, I want to share how to save and load BLOB from database. The database I use here is Firebird, but I think Zeos behaviour is same. This example below is to save and load the JPEG image into and from Firebird database. If you use bitmap image then you can display it using TDBImage, but for JPEG you cann't do that otherwise you get an error that said that it is not a valid bitmap. So in this code, for display the image from database I use TDBImage with no binding (the datasource property still null). So let's look the code:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The component that I dropped:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;uses jpeg, ........&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;type&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  TForm1 = class(TForm)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    con1: TZConnection;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    qr1: TZQuery;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    qr1aaa: TStringField; //persistant field that only string value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    qr1gambar: TBlobField; //persistent field "gambar" that used to save JPEG image&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ds1: TDataSource;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    dlgOpen1: TOpenDialog;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    dbnvgr1: TDBNavigator;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    dbeaaa: TDBEdit; //use binding to connect to field "aaa"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    btn1: TButton;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    btn2: TButton;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    dbimg1: TDBImage;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    procedure btn1Click(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    procedure FormShow(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    procedure FormClose(Sender: TObject; var Action: TCloseAction);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    procedure btn2Click(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  private&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    { Private declarations }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  public&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    { Public declarations }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  end;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The code:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;procedure TForm1.FormShow(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt; //Connect to Database and open query&lt;br /&gt; con1.Connect;&lt;br /&gt; qr1.Close;&lt;br /&gt; qr1.Open;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);&lt;br /&gt;begin&lt;br /&gt; //Close query and connection&lt;br /&gt; qr1.Close;&lt;br /&gt; con1.Disconnect;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.btn1Click(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt; if dlgOpen1.Execute then&lt;br /&gt; begin   &lt;br /&gt;   //Load JPEG image (or anything type of file) into database&lt;br /&gt;   qr1gambar.LoadFromFile(dlgOpen1.FileName);&lt;br /&gt; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.btn2Click(Sender: TObject);&lt;br /&gt;var j:TJPEGImage;&lt;br /&gt;begin&lt;br /&gt; //Display image from database to TDBimage (dbimg1) component&lt;br /&gt; j:=TJPEGImage.Create;&lt;br /&gt; j.Assign(qr1gambar);&lt;br /&gt; dbimg1.Picture.Assign(j);&lt;br /&gt; FreeAndNil(j);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;How the code work?&lt;br /&gt;"btn1Click" method is clicked after the dataset is in edit or insert mode, then after it load from file then post it (I use DBNavigator in the above example). And then "btn2Click" is for display image from database to TDBImage component. Simply enough? yes, that's all.&lt;br /&gt;&lt;br /&gt;Now, what about other format like Word, Excel or PDF document that you want to extract from the database? (the save method is same). The answer is, save it to file again. Zeos already implement it well, so you can do like this:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;qr1gambar.SaveToFile('c:\somefile.doc');&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Also simply enough? yes.  So don't worry to use BLOB field with Zeos component :)&lt;br /&gt;How about to save/load it from Stream? You can also use "SaveToStream" and "LoadFromStream" method.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-9146693267197444982?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/9146693267197444982/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=9146693267197444982' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/9146693267197444982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/9146693267197444982'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2008/01/blob-field-using-zeosdbo-66x.html' title='BLOB Field using ZeosDBO 6.6.x'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2867275416671973628</id><published>2007-12-20T18:11:00.000-08:00</published><updated>2007-12-20T18:18:04.562-08:00</updated><title type='text'>Yesterday, Today, Tomorrow in Firebird</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here is some date literal again. Firebird can calculate the value of yesterday, today and tomorrow into a date value. Here is the example that you can try by yourself.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;select cast('yesterday' as date), cast('today' as date), cast('tomorrow' as date)&lt;br /&gt;from rdb$database&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2867275416671973628?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2867275416671973628/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2867275416671973628' title='3 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2867275416671973628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2867275416671973628'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/12/yesterday-today-tomorrow-in-firebird.html' title='Yesterday, Today, Tomorrow in Firebird'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-132427006255457916</id><published>2007-12-12T18:12:00.000-08:00</published><updated>2007-12-12T18:22:00.009-08:00</updated><title type='text'>ZeosDBO 6.6.2 Release Candidate</title><content type='html'>Now, ZeosDBO 6.6.2 RC version is ready to download &lt;a href="http://zeosdownload.firmos.at/downloads/releases/ZEOSDBO-6.6.2-rc.zip"&gt;here&lt;/a&gt; and the help file can be download &lt;a href="http://zeosdownload.firmos.at/downloads/releases/ZEOSDBO-6.6.2-rc_doc.zip"&gt;here&lt;/a&gt;. Many bugs have been fixed since the 6.6.1 version. Here is some of the Firebird bugs and general bugs that have been fixed since 6.6.1 version:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=79" title="[closed] Typo in SQl statement in TZInterbase6Connection.Open;"&gt;0000079&lt;/a&gt;: &lt;b&gt;[dbc]&lt;/b&gt; Typo in SQl statement in TZInterbase6Connection.Open; (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=70" title="[closed] Missing license files"&gt;0000070&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; Missing license files (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=33" title="[closed] Fixes a bug in UpdateString procedure for ZDbcInterbase6Utils"&gt;0000033&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; Fixes a bug in UpdateString procedure for ZDbcInterbase6Utils (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=22" title="[closed] Split ZPlainMysql.inc"&gt;0000022&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; Split ZPlainMysql.inc (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=19" title="[closed] string parameters don't work for blob fields"&gt;0000019&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; string parameters don't work for blob fields (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=16" title="[closed] Integer field treated as Largeint"&gt;0000016&lt;/a&gt;: &lt;b&gt;[core]&lt;/b&gt; Integer field treated as Largeint (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=55" title="[closed] Wrong index variable used when doing &amp;quot;refresh&amp;quot; in ZUpdateSQL component , patch included"&gt;0000055&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; Wrong index variable used when doing "refresh" in ZUpdateSQL component , patch included (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=56" title="[closed] Protection fault when doing an EAbort exception in BeforeConnect of TZConnection (patch incl.)"&gt;0000056&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; Protection fault when doing an EAbort exception in BeforeConnect of TZConnection (patch incl.) (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=59" title=""&gt;0)"&gt;0000059&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; ZQuery-DSP-CDS empty field data fetched while using incremental fetching (PacketRecords&gt;0) (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=61" title="[closed] Wrong data returning in select"&gt;0000061&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; Wrong data returning in select (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=65" title="[closed] FPC 2.2 doesn't compile"&gt;0000065&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; FPC 2.2 doesn't compile (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=69" title="[closed] Compiler Warnings in Delphi 2006"&gt;0000069&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; Compiler Warnings in Delphi 2006 (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=71" title="[closed] Floating point not display correctly"&gt;0000071&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; Floating point not display correctly (cipto_kh)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=49" title="[closed] Lookup fields with int64 data type not work in Delphi/C++Builder 5"&gt;0000049&lt;/a&gt;: &lt;b&gt;[core]&lt;/b&gt; Lookup fields with int64 data type not work in Delphi/C++Builder 5 (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=48" title="[closed] TZSQLProcessor does not react when Script text is not properly delimited"&gt;0000048&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; TZSQLProcessor does not react when Script text is not properly delimited (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=7" title="[closed] TZSequence error, value from prior database"&gt;0000007&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; TZSequence error, value from prior database (cipto_kh)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=13" title="[closed] can not use a string as parameter value for integer/long parameters"&gt;0000013&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; can not use a string as parameter value for integer/long parameters (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=20" title="[closed] second call to stored proc fail with a parameter mismatch error"&gt;0000020&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; second call to stored proc fail with a parameter mismatch error (cipto_kh)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=34" title="[closed] Lookup field make other field in TZQuery lost the value (disappear from display but still exists in database)"&gt;0000034&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; Lookup field make other field in TZQuery lost the value (disappear from display but still exists in database) (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=27" title="[closed] problem handling DEFAULT NULL in domain *AND* in table"&gt;0000027&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; problem handling DEFAULT NULL in domain *AND* in table (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=28" title="[closed] TZInterbase6DatabaseMetadata.HasNoWildcards - wrong result"&gt;0000028&lt;/a&gt;: &lt;b&gt;[interbase/firebird]&lt;/b&gt; TZInterbase6DatabaseMetadata.HasNoWildcards - wrong result (cipto_kh)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=37" title="[closed] ZEOS AND LAZARUS 0.9.23 and FPC 2.1.3 WIN32 ERROR"&gt;0000037&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; ZEOS AND LAZARUS 0.9.23 and FPC 2.1.3 WIN32 ERROR (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=38" title="[closed] Can't open sqlite databases with Umlauts like äöü in path (fixed)"&gt;0000038&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; Can't open sqlite databases with Umlauts like äöü in path (fixed) (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=40" title="[closed] Error in conversion int64 to variant in InternalPost on Delphi/C++Builder 5 (ZAbstractDataset.pas)"&gt;0000040&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; Error in conversion int64 to variant in InternalPost on Delphi/C++Builder 5 (ZAbstractDataset.pas) (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=46" title="[closed] fpc 2.1.4 cannot compile ZAbstractRODataset.pas"&gt;0000046&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; fpc 2.1.4 cannot compile ZAbstractRODataset.pas (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=42" title="[closed] Using the same component (TZStoredProcedure) after ExecProc then using Open it will crash"&gt;0000042&lt;/a&gt;: &lt;b&gt;[general]&lt;/b&gt; Using the same component (TZStoredProcedure) after ExecProc then using Open it will crash (cipto_kh)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=43" title="[closed] ReadOnlyQuery + TDataSetProvider = Blank fields on details"&gt;0000043&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; ReadOnlyQuery + TDataSetProvider = Blank fields on details (mdaems)&lt;br /&gt;- &lt;a href="http://zeosbugs.firmos.at/view.php?id=63" title="[closed] TZSQLProcessor and comments handling"&gt;0000063&lt;/a&gt;: &lt;b&gt;[component]&lt;/b&gt; TZSQLProcessor and comments handling (mdaems)&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;That list are taken from &lt;a href="http://zeosbugs.firmos.at"&gt;Zeos Mantis Bug Tracker&lt;/a&gt;. For your information ZeosDBO also run on Lazarus&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-132427006255457916?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/132427006255457916/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=132427006255457916' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/132427006255457916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/132427006255457916'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/12/zeosdbo-662-release-candidate.html' title='ZeosDBO 6.6.2 Release Candidate'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-7512893039079006400</id><published>2007-12-11T23:27:00.000-08:00</published><updated>2007-12-11T23:31:35.431-08:00</updated><title type='text'>ZeosDBO in Lazarus Project</title><content type='html'>Today I look in &lt;a href="http://www.lazarus.freepascal.org/"&gt;Lazarus&lt;/a&gt; (Delphi like that running on Linux) website and there is a poll about Lazarus/ZeosLib developer conference, mmm.... it look that &lt;a href="http://zeosforum.net.ms/"&gt;ZeosLib&lt;/a&gt; getting more popular in open source project. It's interesting to come in there, but I'm in Indonesia :( just can watch....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-7512893039079006400?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/7512893039079006400/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=7512893039079006400' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7512893039079006400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7512893039079006400'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/12/zeosdbo-in-lazarus-project.html' title='ZeosDBO in Lazarus Project'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4008180593508003988</id><published>2007-12-11T22:33:00.000-08:00</published><updated>2007-12-11T23:23:50.927-08:00</updated><title type='text'>Get current date time in Firebird</title><content type='html'>There is many way to get the current date time from the Firebird database, here are the example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;select current_date, current_time, current_timestamp, cast('now' as timestamp)&lt;br /&gt;from rdb$database&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The last one that use special keyword (date/time literal) called 'now' that can be cast to timestamp, date, or time. Now the question is, how to get the milisecond in SQL statement? I still don't know, maybe some people arround here can can share to us the answer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4008180593508003988?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4008180593508003988/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4008180593508003988' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4008180593508003988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4008180593508003988'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/12/get-current-date-time-in-firebird.html' title='Get current date time in Firebird'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5505191265490170598</id><published>2007-10-17T20:37:00.000-07:00</published><updated>2007-10-17T20:49:33.844-07:00</updated><title type='text'>Firebird 2.1 beta2 is OUT</title><content type='html'>Firebird 2.1 beta 2 is out now, it's time to explore the new feature. It's hope the last beta version and after that it will go to Release Candidate version :)&lt;br /&gt;&lt;br /&gt;The release notes of that version is in &lt;a href="http://www.firebirdsql.org/devel/doc/rlsnotes/html/rlsnotes21.html"&gt;here&lt;/a&gt;. Many new feature that make it more interesting like Common Table Expression, aggregate function LIST, many build in function (that make us not needed to add UDF manually), built in monitoring table, and the cool one "Domain in PSQL"!!. It like FB have a feature plus than M$ SQL Server 2005 :) (CMIIW).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5505191265490170598?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5505191265490170598/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5505191265490170598' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5505191265490170598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5505191265490170598'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/10/fb-21-beta2-is-out.html' title='Firebird 2.1 beta2 is OUT'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-139129611014963271</id><published>2007-10-17T20:25:00.000-07:00</published><updated>2007-10-17T20:37:32.859-07:00</updated><title type='text'>Firebird System Table (Part VI)</title><content type='html'>Here maybe the last system table (that I really used in in my daily program) I would like to share, that system table is (I) called a "constraint system trigger" (I don't know the correct name for this data, so I just called like that ^_^ CMIIW). I usually also find the error in query that has the name like this "CHECK_xx", so to find the table that has this contraint then I create a view like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;CREATE VIEW "vSYS_FindSystemTrigger"(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "triggerName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "tableName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "triggerInactive",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "triggerType")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;select r.rdb$trigger_name, r.rdb$relation_name, r.rdb$trigger_inactive, r.rdb$trigger_type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;from rdb$triggers r&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;where r.rdb$system_flag = 4;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In that query I don't know the meaning of the "triggerType", so if one of you know the meaning of that field, please add a comment in here. It can give other Firebird users more knowledge :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-139129611014963271?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/139129611014963271/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=139129611014963271' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/139129611014963271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/139129611014963271'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/10/firebird-system-table-part-vi.html' title='Firebird System Table (Part VI)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5077215727130690865</id><published>2007-10-17T20:17:00.000-07:00</published><updated>2007-10-17T20:22:52.028-07:00</updated><title type='text'>Firebird System Table (Part V)</title><content type='html'>In this part V, I would like to share the system table that list the constraint of the database. I often use this view to find which constraint that make an error on my program (the table that the constraint belongs on, or just the index name that cause the error).&lt;br /&gt;&lt;br /&gt;As we know in Delphi if our query make an error then if you trap the exception, it will show the name of the constraint error (if the error caused by constraint error).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;CREATE VIEW "vSYS_FindConstraint"(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "consTipe",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "tableName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "consName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    "indexName")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;select c.rdb$constraint_type, c.rdb$relation_name, c.rdb$constraint_name, c.rdb$index_name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;from rdb$relation_constraints c&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5077215727130690865?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5077215727130690865/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5077215727130690865' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5077215727130690865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5077215727130690865'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/10/firebird-system-table-part-v.html' title='Firebird System Table (Part V)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6342717621811133210</id><published>2007-10-05T01:30:00.000-07:00</published><updated>2007-10-05T01:43:06.668-07:00</updated><title type='text'>Firebird System Tables (Part IV)</title><content type='html'>The system table for stored procedure is like here. The purpose of this view is the same like in &lt;a href="http://firebird-with-delphi.blogspot.com/2007/09/firebird-system-table-part-ii.html"&gt;Firebird System Table (Part II)&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;CREATE VIEW "vSYS_FindProcSource"(&lt;br /&gt;    "procName",&lt;br /&gt;    "procSource")&lt;br /&gt;AS&lt;br /&gt;select r.rdb$procedure_name, r.rdb$procedure_source&lt;br /&gt;from rdb$procedures r&lt;br /&gt;where r.rdb$system_flag = 0;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6342717621811133210?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6342717621811133210/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6342717621811133210' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6342717621811133210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6342717621811133210'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/10/firebird-system-tables-part-iv.html' title='Firebird System Tables (Part IV)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4494639720669147324</id><published>2007-09-29T04:48:00.000-07:00</published><updated>2007-09-29T04:55:34.683-07:00</updated><title type='text'>Firebird 2.0.3 is released</title><content type='html'>On 26 September 2007, Firebird version 2.0.3 is released, you can download in &lt;a href="http://www.firebirdsql.org/index.php?op=files&amp;amp;id=engine_203"&gt;here&lt;/a&gt;. This version is only bug fixed version from   FB 2.0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4494639720669147324?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4494639720669147324/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4494639720669147324' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4494639720669147324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4494639720669147324'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/firebird-203-is-released.html' title='Firebird 2.0.3 is released'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-9089504565361558019</id><published>2007-09-26T20:04:00.000-07:00</published><updated>2007-09-26T20:09:32.369-07:00</updated><title type='text'>Installing ZeosDBO in Delphi (rev version)</title><content type='html'>I already make some revision on my previous post about how to install ZeosDBO components in Delphi. The revision link is &lt;a href="http://firebird-with-delphi.blogspot.com/2007/07/installing-zeosdbo.html"&gt;here&lt;/a&gt;. ZeosDBO is one of the direct connection components to many RDBMS including Firebird. The idea of ZeosDBO is like JDBC, and to switch from one database to another database is really easy, find it by yourself after trying this amazing components. One thing, this component is FREE and OPEN SOURCE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-9089504565361558019?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/9089504565361558019/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=9089504565361558019' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/9089504565361558019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/9089504565361558019'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/installing-zeosdbo-in-delphi-rev.html' title='Installing ZeosDBO in Delphi (rev version)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2070792242668696136</id><published>2007-09-26T19:49:00.001-07:00</published><updated>2007-09-26T20:12:24.231-07:00</updated><title type='text'>Firebird System Tables (Part III rev 1)</title><content type='html'>Here is some revision (from Romkin idea) to the query of Firebird System Tables part III.&lt;br /&gt;In this query, it doesn't need anymore to has "case" statement to get the convertion from numeric type_name to more readable name. And I want to say thank you for the supporting comment on this little articles. Once correction from Milan Babuskov that told me "CONTAINING" is in Firebird since the first versions 1.0. Hope all articles in this blog can be usefull for FB community. Wait for the next Firebird System Tables again, stay tune on the same channel he..he..he.. :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;CREATE VIEW "vSYS_FindDependencies"(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependentName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependentType",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnFieldName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnType")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;select d.RDB$DEPENDENT_NAME DEPENDENT_NAME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       (select t.RDB$TYPE_NAME from RDB$TYPES t&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        where d.RDB$DEPENDENT_TYPE=t.RDB$TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;              and t.RDB$FIELD_NAME = 'RDB$OBJECT_TYPE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ) DEPENDENT_TYPE,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       d.RDB$DEPENDED_ON_NAME DEPENDED_ON_NAME, d.RDB$FIELD_NAME DEPENDED_ON_FIELD_NAME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       (select t.RDB$TYPE_NAME from RDB$TYPES t&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        where d.RDB$DEPENDED_ON_TYPE=t.RDB$TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;              and t.RDB$FIELD_NAME = 'RDB$OBJECT_TYPE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ) DEPENDED_ON_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from RDB$DEPENDENCIES d&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2070792242668696136?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2070792242668696136/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2070792242668696136' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2070792242668696136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2070792242668696136'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/firebird-system-tables-iii-rev1.html' title='Firebird System Tables (Part III rev 1)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5854673008214126841</id><published>2007-09-20T21:12:00.000-07:00</published><updated>2007-09-20T21:32:14.988-07:00</updated><title type='text'>Firebird System Tables (Part III)</title><content type='html'>This article idea (Part III) is belong to the someone that put comment on my previous article, so I just accomodate his/her idea. And I already arrange to become a view like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;CREATE VIEW "vSYS_FindDependencies"(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependentName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependentType",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnFieldName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "dependedOnType")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  select RDB$DEPENDENT_NAME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         case RDB$DEPENDENT_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 0 then 'Table'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 1 then 'View'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 2 then 'Trigger'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 3 then 'Computed field'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 4 then 'Validation'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 5 then 'Procedure'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 6 then 'Expression index'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 7 then 'Exception'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 8 then 'User'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 9 then 'Field'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 10 then 'Index'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 14 then 'Generator'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           else RDB$DEPENDENT_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         end DEPENDENT_TYPE,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         RDB$DEPENDED_ON_NAME, RDB$FIELD_NAME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         case RDB$DEPENDED_ON_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 0 then 'Table'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 1 then 'View'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 2 then 'Trigger'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 3 then 'Computed field'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 4 then 'Validation'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 5 then 'Procedure'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 6 then 'Expression index'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 7 then 'Exception'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 8 then 'User'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 9 then 'Field'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 10 then 'Index'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           when 14 then 'Generator'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           else RDB$DEPENDED_ON_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         end DEPENDED_ON_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  from RDB$DEPENDENCIES;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The idea is to know the dependency on some entity  in the database.  Perhaps it is also usefull for everyone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5854673008214126841?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5854673008214126841/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5854673008214126841' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5854673008214126841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5854673008214126841'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/firebird-system-tables-part-iii.html' title='Firebird System Tables (Part III)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4290142036221827990</id><published>2007-09-19T20:51:00.001-07:00</published><updated>2007-09-19T21:13:19.350-07:00</updated><title type='text'>Firebird System Table (Part II)</title><content type='html'>Another FB system table is system table for trigger. The reason I create this view is to scan for some code inside the  source of the trigger. For example, I want to change  the field  type of table A, then I want to know, this field is being used by which trigger, so I can search thorough this view:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;CREATE VIEW "vSYS_FindTriggerSource"(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "triggerName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "tableName",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "triggerInactive",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    "triggerSource")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;select r.rdb$trigger_name, r.rdb$relation_name, r.rdb$trigger_inactive, r.rdb$trigger_source&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from rdb$triggers r&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;where r.rdb$system_flag = 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to seach some text in the trigger source then you can use this simple query:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;select *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from "vSYS_FindTriggerSource"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;where "triggerSource" containing 'some_field'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The keyword "containing" here (if I'm not forget) is exists from FB 2. The difference between "containing" and "like" is the "like" is case sensitive where "containing" is case insensitive, and also you not need the "%" sign like in "like" keyword.&lt;br /&gt;&lt;br /&gt;That view also display the status of the trigger, if the "triggerInactive" field value is zero, then it means that trigger is active and vice versa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4290142036221827990?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4290142036221827990/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4290142036221827990' title='3 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4290142036221827990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4290142036221827990'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/firebird-system-table-part-ii.html' title='Firebird System Table (Part II)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4515528773988075480</id><published>2007-09-17T23:06:00.000-07:00</published><updated>2007-09-19T02:43:22.554-07:00</updated><title type='text'>Firebird System Tables (Part I)</title><content type='html'>Hi, whew it's has been long time since my last time post, yes I  a little bit busy now, with some of my own project and some of my family work. Ok, now I want to share about Firebird System Tables, they are tables that side on every FB database that consist of metadata of user tables (table that you created), many question about this and also many purpose to know about this.&lt;br /&gt;&lt;br /&gt;I often use this technique when I develop a database that consist of many tables and where there is an error on one of the field and then I must know this field is belong on which table, to solve that problem, I create a view like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE VIEW "vSYS_FindField"(&lt;br /&gt;"tableName",&lt;br /&gt;"fieldName",&lt;br /&gt;"default_val")&lt;br /&gt;AS&lt;br /&gt;select r.rdb$relation_name, f.rdb$field_name, f.rdb$default_source&lt;br /&gt;from RDB$RELATIONS r, RDB$RELATION_FIELDS f&lt;br /&gt;where r.rdb$system_flag = 0&lt;br /&gt;   and r.rdb$relation_name=f.rdb$relation_name;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;The FB System Tables can be known from "RDB$RELATIONS.RDB$SYSTEM_FLAG" greater than 0 (zero). The "RDB$RELATIONS" is a system table for user table and user view (off course it also contain of many things that you can look by yourself ;P) And "RDB$RELATION_FIELDS" is as you may guess is a system table for user field.  It's now up to you to improve that query, maybe you want to include some more information, then go ahead :)&lt;br /&gt;&lt;br /&gt;NB: Thank's Romkin for the correction, now I already applied your correction in this short article :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4515528773988075480?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4515528773988075480/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4515528773988075480' title='5 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4515528773988075480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4515528773988075480'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/09/firebird-system-tables-part-i.html' title='Firebird System Tables (Part I)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2160332259966008854</id><published>2007-08-15T19:37:00.000-07:00</published><updated>2007-08-15T19:39:21.016-07:00</updated><title type='text'>Firebird Won 2 Sourceforge Community Awards</title><content type='html'>&lt;span style="font-size:100%;"&gt;From InfoWorld:&lt;br /&gt;&lt;strong&gt;SourceForge unveils the winners of the ‘open-source Oscars’&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;“…The &lt;strong&gt;Firebird relational database was another double winner&lt;/strong&gt;, being voted both best project for the enterprise and the project providing the best user support.”&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2160332259966008854?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2160332259966008854/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2160332259966008854' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2160332259966008854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2160332259966008854'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/08/firebird-won-2-sourceforge-community.html' title='Firebird Won 2 Sourceforge Community Awards'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8136460641953626535</id><published>2007-08-15T19:34:00.001-07:00</published><updated>2007-08-15T19:37:20.441-07:00</updated><title type='text'>Firebird 5th International Conference</title><content type='html'>This years conference will be held in the Telekom Conference Hotel in Hamburg, Germany. There are different international flights to Hamburg. We recommend to check &lt;a href="http://www.air-berlin.com/" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.air-berlin.com');"&gt;www.air-berlin.com&lt;/a&gt; with a lot of european destinations and very cheap pricing. Hamburgs international airport code: HAM&lt;a href="http://www.ham.airport.de/index_en.phtml" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.ham.airport.de');"&gt; http://www.ham.airport.de/index_en.phtml&lt;/a&gt; &lt;p&gt;There is a public train station nearby conference hotel. A map of the location with traveling infos will be send to all visitors&lt;/p&gt; &lt;p&gt;This year we have a special entry level track on thursday and friday. For advanced visitors you find a seperate thread. In the codecamp, you can ask on both days the experts and let them analyze your real world problem. On saturday you will find more general session topics.&lt;/p&gt; &lt;p&gt;Early bird conference fees (valid until 20th sep 2007):&lt;br /&gt;-Full Conference Package 599 Euro *&lt;br /&gt;3 days conference, 4 nights in the conference hotel&lt;br /&gt;(17.-21.) , breakfast, lunch, dinner, evening events&lt;/p&gt; &lt;p&gt;-Conference Only Package 399 Euro *&lt;br /&gt;3 days conference, lunch&lt;/p&gt; &lt;p&gt;-Main Conference Day only Package 169 Euro *&lt;br /&gt;saturday only conference, 1 night in the conference hotel (20.-21.), breakfast, lunch, dinner, saturday evening event&lt;/p&gt; &lt;p&gt;-Main Conference Day only 99 Euro *, saturday only&lt;br /&gt;conference, lunch&lt;/p&gt; &lt;p&gt;* all prices excl 19% VAT, required for all visitors 2nd visitor discount 10%, 3rd visitor discount 15% Please use the website www.firebird-conference.com or email info@h-k.de or fax +4970042397378 to send us your reservation. We hope to see you in Hamburg.&lt;/p&gt; &lt;p&gt;Naturally, we are still looking for sponsors! If you have been thinking about being a conference sponsor, NOW is the time to act. It is also possible to add special product sponsoring packages. Please contact hklemt@ibexpert.biz as soon as possible.&lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic;"&gt;Taken from Firebird News&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8136460641953626535?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8136460641953626535/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8136460641953626535' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8136460641953626535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8136460641953626535'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/08/firebird-5th-international-conference.html' title='Firebird 5th International Conference'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1035692486377978502</id><published>2007-08-15T19:28:00.000-07:00</published><updated>2007-08-15T19:32:51.168-07:00</updated><title type='text'>New site Firebird FAQ</title><content type='html'>Hi guys, there is a new site for Firebird, it is &lt;a href="http://www.firebirdfaq.org"&gt;Firebird FAQ&lt;/a&gt;&lt;br /&gt;This site is built by Firebird users, for Firebird users to answer the most frequently ask question (FAQ). It's also has a good index to separate question topic. So if you want to know more about this fenomenal database, check it out :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1035692486377978502?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1035692486377978502/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1035692486377978502' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1035692486377978502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1035692486377978502'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/08/new-site-firebird-faq.html' title='New site Firebird FAQ'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1250158513633173734</id><published>2007-07-08T20:18:00.000-07:00</published><updated>2007-07-08T20:19:41.146-07:00</updated><title type='text'>Vote for Firebird in Sourceforge Awards</title><content type='html'>&lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;Firebird is a finalist in four categories of the Sourceforge&lt;br /&gt;Community Choice Awards for 2007.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;In each category the Firebird project is up against 9 other&lt;br /&gt;projects all selected for excellence from hundreds of thousands of SF&lt;br /&gt;projects. Categories are Best Tool or Utility, Best Project for the&lt;br /&gt;Enterprise, Best User Support and Best Project Overall.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;Voting is open until July 20 so take this opportunity to credit&lt;br /&gt;Firebird with your recognition. Full details and links here:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://sourceforge.net/community/index.php/landing-pages/cca07/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;http://sourceforge.net/communit&lt;wbr&gt;y/index.php/landing-pages&lt;wbr&gt;/cca07/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1250158513633173734?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1250158513633173734/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1250158513633173734' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1250158513633173734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1250158513633173734'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/vote-for-firebird-in-sourceforge-awards.html' title='Vote for Firebird in Sourceforge Awards'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-930419949416758236</id><published>2007-07-05T22:24:00.002-07:00</published><updated>2007-07-05T22:25:05.028-07:00</updated><title type='text'>Nice Function Added in Firebird 2.1 (beta)</title><content type='html'>&lt;p&gt;Here is the list of &lt;a href="http://www.firebirdsql.org/devel/doc/rlsnotes/html/rlsnotes21.html#rnfb21-appx-A"&gt;built in function&lt;/a&gt; in Firebird 2.1 (now, it's still beta). My favourite function:&lt;/p&gt; &lt;p&gt;String function: LPAD, RPAD, LEFT, RIGHT, POSITION, REPLACE, REVERSE&lt;/p&gt; &lt;p&gt;Date function: DATEDIFF, DATEADD&lt;/p&gt; &lt;p&gt;Numeric function: ROUND,  TRUNC, ABS, MIN_VALUE, MAX_VALUE, GEN_UUID, HASH&lt;/p&gt; &lt;p&gt;So with this new built in function, my previous article can be achieve with more short statement like this:&lt;/p&gt; &lt;p&gt;select current_date,&lt;br /&gt;right(extract(year from current_date), 2) ||&lt;br /&gt;right('0' || extract(month from current_date), 2) as Year_Month&lt;br /&gt;from rdb$database&lt;/p&gt; &lt;p&gt;But in my opinion it would be nice if Firebird team extend the capability of SUBSTRING function like this: the "length" value can be negative so it can achieve the same result like RIGHT function with the capability of "start position". Example:&lt;/p&gt; &lt;p&gt;Substring('Hello World' from 9 to -3) will result "Wor"&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-930419949416758236?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/930419949416758236/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=930419949416758236' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/930419949416758236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/930419949416758236'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/nice-function-added-in-firebird-21-beta.html' title='Nice Function Added in Firebird 2.1 (beta)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1644063160776223937</id><published>2007-07-05T22:24:00.001-07:00</published><updated>2007-07-05T22:24:29.660-07:00</updated><title type='text'>FB Date Manipulation</title><content type='html'>&lt;p&gt;Last week I have a question from Delphindo (Indonesian Delphi community) thorough YM conference. The question is how to make SQL query for Firebird to obtain the same result as we do this (to_char(sysdate, 'YYMM');) in Oracle. I must admit that Firebird doesn't have this "to_char" built in function, but we can create the same result with the trick like this:&lt;/p&gt; &lt;p&gt;select current_date,&lt;br /&gt;substring(extract(year from current_date) from 3)||&lt;br /&gt;case&lt;br /&gt;when char_length(extract(month from current_date))=1&lt;br /&gt;    then '0'||extract(month from current_date)&lt;br /&gt;else&lt;br /&gt;    extract(month from current_date)&lt;br /&gt;end as Year_Month&lt;br /&gt;from rdb$database&lt;/p&gt; &lt;p&gt;Thank's to the new feature of Firebird 2, that can make this happen without installing any UDF. I use the "char_length" and "substring" built in function that come in Firebird 2 (version 1.5xx still not support this built in function).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1644063160776223937?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1644063160776223937/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1644063160776223937' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1644063160776223937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1644063160776223937'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/fb-date-manipulation.html' title='FB Date Manipulation'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-294328062273783620</id><published>2007-07-05T22:23:00.003-07:00</published><updated>2007-07-05T22:23:58.176-07:00</updated><title type='text'>Firebird Date Literals</title><content type='html'>Today I go to firebirdnews and found that this article is good and it may guide you to know more about FB date time. &lt;a href="http://www.firebirdsql.org/doc/contrib/FirebirdDateLiterals.html"&gt;Here is the link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-294328062273783620?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/294328062273783620/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=294328062273783620' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/294328062273783620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/294328062273783620'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-date-literals.html' title='Firebird Date Literals'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1089589680195837559</id><published>2007-07-05T22:23:00.001-07:00</published><updated>2007-07-05T22:23:30.505-07:00</updated><title type='text'>Firebird 2.1 is in Alpha state</title><content type='html'>Here is the link of release note &lt;a href="http://www.firebirdsql.org/devel/doc/rlsnotes/html/rlsnotes21.html"&gt;FB2.1Alpha&lt;/a&gt;. Wow it's time to try.&lt;br /&gt;Some cool feature:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Use of domains for Trigger/SP variable definition (SQL Server or MySQL doesn't have it (CMIIW))&lt;/li&gt;&lt;li&gt;Global temporary tables&lt;/li&gt;&lt;li&gt;Common table expressions, recursive queries&lt;/li&gt;&lt;li&gt;Database Triggers&lt;/li&gt;&lt;li&gt;Database Monitoring via SQL&lt;/li&gt;&lt;li&gt;Admin information via select&lt;/li&gt;&lt;li&gt;Get ODS Version and Dialect via SQL&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1089589680195837559?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1089589680195837559/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1089589680195837559' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1089589680195837559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1089589680195837559'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-21-is-in-alpha-state.html' title='Firebird 2.1 is in Alpha state'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2425492637146391755</id><published>2007-07-05T22:22:00.002-07:00</published><updated>2007-07-05T22:23:01.564-07:00</updated><title type='text'>Backup in Firebird</title><content type='html'>There is nice article in &lt;a href="http://www.destructor.de/firebird/gbak.htm"&gt;here&lt;/a&gt; that explain a lot of things about backup database in Firebird (including command reference). This article is lack of explanation about Firebird new incremental backup (but you can find about this incremental backup on your Firebird 2 release notes). Hope you like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2425492637146391755?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2425492637146391755/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2425492637146391755' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2425492637146391755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2425492637146391755'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/backup-in-firebird.html' title='Backup in Firebird'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5728043600706082079</id><published>2007-07-05T22:22:00.001-07:00</published><updated>2007-07-05T22:22:33.008-07:00</updated><title type='text'>Firebird 2.0.1 and ZeosDBO 6.6.1 beta</title><content type='html'>Yeah I know it's late to let you know thorough this Blog that Firebird 2.01 and ZeosDBO 6.6.1 beta is released, but if you don't know then I hope this little blog can let you know more.&lt;br /&gt;&lt;br /&gt;Firebird 2.0.1 is only bug fixed and there is nothing new feature.&lt;br /&gt;ZeosDBO 6.6.1 beta is only bug fixed and there is nothing new feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5728043600706082079?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5728043600706082079/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5728043600706082079' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5728043600706082079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5728043600706082079'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-201-and-zeosdbo-661-beta.html' title='Firebird 2.0.1 and ZeosDBO 6.6.1 beta'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2709670033979601484</id><published>2007-07-05T22:21:00.001-07:00</published><updated>2007-07-05T22:21:39.942-07:00</updated><title type='text'>Recomended Page Size in Firebird</title><content type='html'>If you using Firebird database then the best setting for id set the page size to 4096 and use SQL Dialect 3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2709670033979601484?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2709670033979601484/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2709670033979601484' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2709670033979601484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2709670033979601484'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/recomended-page-size-in-firebird.html' title='Recomended Page Size in Firebird'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8218359344292854609</id><published>2007-07-05T22:20:00.000-07:00</published><updated>2007-07-05T22:21:12.128-07:00</updated><title type='text'>FB2.0 New Interesting Feature</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today, I just know after reading my email from firebird-support that show the new feature of FB2.0 the complete article can be found &lt;a href="http://entwickler-magazin.de/zonen/magazine/psecom,id,8,online,783,p,0.html"&gt;here&lt;/a&gt; but that article is not in English :( (If someone here know what language in that site is used, please tell me because I want to translate it using Altavista Babel fish) I just read the example from that article and try it. The one that I like, is the new function on ODS 11 and it can be used like this:&lt;br /&gt;&lt;/div&gt;&lt;pre class="code"&gt;select rdb$get_context('SYSTEM', 'NETWORK_PROTOCOL') as protocol&lt;br /&gt;    , rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') as client_address&lt;br /&gt;from rdb$database;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;In ODS 11 we have the built in UDF rdb$get_context and rdb$set_context you can read more information from the doc directory that come with FB2.0 the file is:&lt;br /&gt;&lt;/div&gt;"README.context_variables2.txt"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8218359344292854609?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8218359344292854609/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8218359344292854609' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8218359344292854609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8218359344292854609'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/fb20-new-interesting-feature.html' title='FB2.0 New Interesting Feature'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-733437566830656584</id><published>2007-07-05T21:34:00.001-07:00</published><updated>2007-07-05T21:34:20.360-07:00</updated><title type='text'>Upgrading Firebird 1.5 to 2.0</title><content type='html'>Yeah, last week I try to install the new Firebird 2.0. And it's easy to migrate the old ODS 10.1 (FB 1.5) to ODS 11 (FB2.0) what you need to do is:&lt;br /&gt;&lt;br /&gt;1. Uninstall Firebird 1.5.3 (if yu wish not to use it again)&lt;br /&gt;2. Install the Firebird 2.0&lt;br /&gt;3. Backup your old database with this new gbak from FB2.0&lt;br /&gt;4. Restore them back with gbak from FB 2.0&lt;br /&gt;5. Now you have the new database with ODS 11&lt;br /&gt;&lt;br /&gt;Hope this little article can help you :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-733437566830656584?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/733437566830656584/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=733437566830656584' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/733437566830656584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/733437566830656584'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/upgrading-firebird-15-to-20.html' title='Upgrading Firebird 1.5 to 2.0'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5319542221000033377</id><published>2007-07-05T21:33:00.003-07:00</published><updated>2007-07-05T21:33:52.749-07:00</updated><title type='text'>Firebird 2.0 is Out, what about me?</title><content type='html'>On 13 November 2006 Firebird 2.0 is launch on the opening of Firebird Conference. I already download it, but I'm still using version 1.5.3 for my real application and just try version 2.0 in my research computer. Why? because I still wait for the version 2.1 =) As you know usually the early version still have a bug or the feature that is not yet complete. But if you are a new Firebird user then you must download this 2.0 and evaluate it. I still wait for the roadmap of the Firebird development that usually out after the Firebird conference to see what feature that I neeed most for my current project. It's happy to see that this community so active&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5319542221000033377?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5319542221000033377/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5319542221000033377' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5319542221000033377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5319542221000033377'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-20-is-out-what-about-me.html' title='Firebird 2.0 is Out, what about me?'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1632625035680774248</id><published>2007-07-05T21:33:00.001-07:00</published><updated>2007-07-05T21:33:23.648-07:00</updated><title type='text'>ReInstalling Component That Using ZeosDBO 6.6 beta</title><content type='html'>Today I try again to ReInstall my components that using ZeosDBO. I want to try this new beta version (version 6.6 beta) so I must clean up my past ZeosDBO 6.1.5. The difficulty that I found when intalling version 6.6 beta is that the seacrh directory and the output directory (from the ZeosDBO.bpg) must be set first (so It's not easy installation for Delphi user that just learn how to install Delphi components), I think they will fix this later for stable version (as they did for 6.1.5 version).&lt;br /&gt;&lt;br /&gt;The point is this new version has a simple bpl &amp; dcp created. Before version 6.6 there is many bpl &amp;amp; dcp respectively for the "ZComponent", "ZCore", "ZPlain" and others. But in this 6.6 version the bpl &amp;amp; dcp is only "ZComponentDesign.dcp" and "ZComponentDesign70.bpl" so I must delete the requires dcp for my components and replace with this new dcp. That's all and everythings goes well (of course after I fix the property "RequestLive" with "ReadOnly")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1632625035680774248?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1632625035680774248/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1632625035680774248' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1632625035680774248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1632625035680774248'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/reinstalling-component-that-using.html' title='ReInstalling Component That Using ZeosDBO 6.6 beta'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6282003537139232096</id><published>2007-07-05T21:30:00.003-07:00</published><updated>2007-07-05T21:30:48.681-07:00</updated><title type='text'>Explicit Cursor in Firebird PSQL</title><content type='html'>Explicit cursor is a new this in Firebird because it's only available in version 2. We can found this syntax in the release notes on Stored Procedure Language (PSQL) section. The example below is taken from that release notes&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DECLARE RNAME CHAR(31);&lt;br /&gt;DECLARE C CURSOR FOR ( SELECT RDB$RELATION_NAME FROM RDB$RELATIONS );&lt;br /&gt;BEGIN&lt;br /&gt; OPEN C;&lt;br /&gt; WHILE (1 = 1) DO&lt;br /&gt; BEGIN&lt;br /&gt;   FETCH C INTO :RNAME;&lt;br /&gt;   IF (ROW_COUNT = 0) THEN&lt;br /&gt;     LEAVE;&lt;br /&gt;   SUSPEND;&lt;br /&gt; END&lt;br /&gt; CLOSE C;&lt;br /&gt;END &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6282003537139232096?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6282003537139232096/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6282003537139232096' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6282003537139232096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6282003537139232096'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/explicit-cursor-in-firebird-psql.html' title='Explicit Cursor in Firebird PSQL'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-549230270928923453</id><published>2007-07-05T21:30:00.001-07:00</published><updated>2007-07-05T21:30:18.602-07:00</updated><title type='text'>Implicit Cursor in Firebird PSQL</title><content type='html'>Firebird has an implicit cursor, we can found the example in the example database employee.fdb, and we can find in the "DEPT_BUDGET" stored procedure, lets look into the source, the implicit cursor has the syntax:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;FOR [select statement] into [local variable that hold the value from select]&lt;br /&gt;DO&lt;br /&gt;BEGIN&lt;br /&gt; [your statement]&lt;br /&gt;END&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The local variable is must defined for each of the field that selected and remember the  datatype must be the same&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-549230270928923453?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/549230270928923453/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=549230270928923453' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/549230270928923453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/549230270928923453'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/implicit-cursor-in-firebird-psql.html' title='Implicit Cursor in Firebird PSQL'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2020278635599228024</id><published>2007-07-05T21:28:00.000-07:00</published><updated>2007-07-05T21:29:14.613-07:00</updated><title type='text'>Sweeping</title><content type='html'>&lt;p&gt; Sweeping is NOT just organized garbage collection. What sweeping seeks to do is to move the Oldest Interesting Transaction up, and reduce the size of transaction masks. It does so by changing rolled back transactions to committed transactions. &lt;/p&gt;&lt;p&gt; "What!!!", you say. "The woman is nuts."   &lt;/p&gt;&lt;p&gt; But that's what a sweep does. It removes all the changes made by a rolled back transaction then changes it state to committed. (Remember we agreed earlier that a read-only transaction that rolled back could be considered committed for all the harm it did. Remove the damage, and its safe to consider the transaction committed.) &lt;/p&gt;&lt;p&gt; At the same time, sweep garbage collects like any other transaction.   &lt;/p&gt;&lt;p&gt;A new thread is started and sweeps the database while everybody else goes about life as normal. Well, more or less normal, where the less is the amount of CPU and I/O bandwidth used by the sweep.&lt;/p&gt;&lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2020278635599228024?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2020278635599228024/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2020278635599228024' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2020278635599228024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2020278635599228024'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/sweeping.html' title='Sweeping'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2377425968819033701</id><published>2007-07-05T21:27:00.002-07:00</published><updated>2007-07-05T21:28:49.177-07:00</updated><title type='text'>Oldest Active Transaction</title><content type='html'>This one sounds easy - but it's not. The oldest active transaction is not the oldest transaction currently running. Nor is it the oldest transaction marked Active in the TIP. (Alas). It is the oldest transaction that was active when the oldest transaction currently active started. The bookkeeping on this is hairy and I frankly don't remember how it was done - &lt;a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_expert4c"&gt;now I do&lt;/a&gt; -, but that's the rule, and it does work.   &lt;p&gt; Any record version behind a committed version created by a transaction older than the oldest transaction active when the oldest transaction currently active started is garbage and will never be needed ever again. &lt;/p&gt;&lt;p&gt; That's pretty dense. Lets ignore the commit/rollback question briefly.   &lt;/p&gt;&lt;p&gt; &lt;b&gt;Simple case:&lt;/b&gt; I'm transaction 20 and I'm the only transaction running. I find a record created and committed by transaction 15. I modify it and commit. You are transaction 25, and when you start, you are also the only transaction active. You read the same record, recognize that all active transactions can use the version of the record created by me, so you garbage collect the original version. In this case, your threshold for garbage collection (aka Oldest Active) is yourself. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Harder case:&lt;/b&gt; You continue puttering around, modifying this and that. Another transaction, say 27 starts. You are its oldest active. It too can modify this and that, as long as it doesn't modify anything you modified. It commits. I start a transaction 30. You are also my oldest active transaction, and I can't garbage collect any record version unless the newer version is older than you. I run into a record originally created by transaction 15, modified by transaction 20, then modified again by 27. All three of those transactions are committed, but I can garbage collect only the original version, created by transaction 15. Although the version created by transaction 27 is old enough for me, it is not old enough for you, and being cooperative, I have to consider your needs too. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Hardest case&lt;/b&gt;: I'm transaction 87, and when I started, all transactions before 75 had committed, and everybody from 75 on was active. Transaction 77 modifies a record, created originally by transaction 56. I continue to read the 56 version. All is well. Transaction 77 commits. You are transaction 95. When you start, I, number 87, am the oldest active. You read the record created by 56 and modified by 77. You can't garbage collect anything in that record because I can't read records created by any transaction newer than 74. &lt;/p&gt;&lt;p&gt; Maybe you know now why descriptions of the oldest active tend to be a little peculiar.&lt;/p&gt;&lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2377425968819033701?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2377425968819033701/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2377425968819033701' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2377425968819033701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2377425968819033701'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/oldest-active-transaction.html' title='Oldest Active Transaction'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5476063182628989627</id><published>2007-07-05T21:27:00.001-07:00</published><updated>2007-07-05T21:27:42.584-07:00</updated><title type='text'>Oldest Interesting Transaction</title><content type='html'>To recognize which record versions can garbage collected, and which updates are rolled back and can be ignored, every transaction includes a &lt;a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_expert4b"&gt;"transaction mask"&lt;/a&gt; which records the states of all "interesting" transactions. A transaction is "interesting" to another transaction if it is concurrent - meaning that its updates are not committed, or if it rolled back - meaning that its updates should be discarded, or if it's in limbo. &lt;p&gt; The "transaction mask" is a snapshot of the states of all transactions from the oldest interesting, to the current. The snapshot is made when the transaction starts and is never updated. The snapshot depends on the number of transactions that have started since the oldest interesting transaction.&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5476063182628989627?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5476063182628989627/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5476063182628989627' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5476063182628989627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5476063182628989627'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/oldest-interesting-transaction.html' title='Oldest Interesting Transaction'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8436523583652853536</id><published>2007-07-05T21:26:00.001-07:00</published><updated>2007-07-05T21:26:39.840-07:00</updated><title type='text'>Garbage Collection</title><content type='html'>&lt;p&gt; Garbage collection prevents an update-intensive database from filling up with unnecessary back versions of records. It also removes record versions created by transactions that rolled back. Every transaction participates in garbage collection - every transaction, including read-only transactions. &lt;/p&gt;&lt;p&gt; When a client applicaition reads a record from a Firebird database, it gets a record that looks like any record from any database. Two levels lower, somewhere in the server, InterBase/Firebird pulls a string of record versions off the disk. Each version is tagged with the transaction id of the transaction that created it. The first one is the most recently stored. At this point, the server has two goals: 1) produce an appropriate version of the record for the current transaction 2) remove any versions that are garbage - either because they were created by a transaction that rolled back or because they are so old that nobody will ever want to see them again. &lt;/p&gt; &lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8436523583652853536?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8436523583652853536/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8436523583652853536' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8436523583652853536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8436523583652853536'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/garbage-collection.html' title='Garbage Collection'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6829539850291238851</id><published>2007-07-05T21:25:00.002-07:00</published><updated>2007-07-05T21:27:17.095-07:00</updated><title type='text'>Garbage</title><content type='html'>&lt;p&gt;Firebird is a multi-generational database. When a record is updated, a copy of the new values is placed in the database, but the old values remain (usually as a bytewise difference from the new value). The old value is called a "Back Version". The back version is the rollback log - if the transaction that updated the record rolls back, the old version is right there, ready to resume its old place. The back version is also the shadow that provides repeatable reads for long running transactions. The version numbers define which record versions particular tranasctions can see. &lt;/p&gt;&lt;p&gt;When the transaction that updated the record commits and all concurrent transactions finish, the back version is unnecessary. In a database in which records are updated significantly and regularly, unnecessary back versions could eventually take up enough disk space that they would reduce the performance of the database. Thus they are GARBAGE, and should be cleaned out.&lt;br /&gt;&lt;/p&gt;&lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6829539850291238851?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6829539850291238851/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6829539850291238851' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6829539850291238851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6829539850291238851'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/garbage-in-fb.html' title='Garbage'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-748058595044354161</id><published>2007-07-05T21:25:00.001-07:00</published><updated>2007-07-05T21:25:25.627-07:00</updated><title type='text'>Transaction States</title><content type='html'>&lt;p&gt; Transactions have four states: active, committed, limbo, and rolled back.   &lt;/p&gt;&lt;p&gt; Taking these cases in order from the least complex to the most:   &lt;/p&gt;&lt;p&gt; Limbo: A transaction that started a &lt;a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;l=;KNOWLEDGEBASE;ID=%27217%27"&gt;two-phase commit&lt;/a&gt; by calling the Prepare routine. The transaction may be alive or not. At any point, the transaction may re-appear and ask to commit or rollback. Changes it made can neither be trusted nor ignored, and certainly cannot be removed from the database. &lt;/p&gt;&lt;p&gt; Committed: A transaction is which completed its activity successfully. Either A) it called Commit and the commit completed successfully, or B) it called Rollback but made no changes to the database, or C) it called Rollback and its changes were subsequently undone and its state changed to Committed. This transaction is finished and will never be heard from again, and its remaining changes are now officially part of the database. &lt;/p&gt;&lt;p&gt; Rolled back: A transaction which either: A) called Rollback and requested that its changes be removed from the database, or B) never called Commit so was marked as Active, but discovered to be dead by another transaction which marked it as rolled back. In either case, changes made by this transaction must be ignored and should be removed from the database. &lt;/p&gt;&lt;p&gt; Active: A transaction which: A) hasn't started. B) has started and hasn't finished. C) started and ended without calling any termination routine. (e.g. crashed, lost communication, etc.)&lt;/p&gt;&lt;span style="font-style: italic;"&gt;Taken from IBPhoenix&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-748058595044354161?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/748058595044354161/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=748058595044354161' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/748058595044354161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/748058595044354161'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/transaction-states.html' title='Transaction States'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6497209471916516823</id><published>2007-07-05T21:23:00.002-07:00</published><updated>2007-07-05T21:24:13.463-07:00</updated><title type='text'>The Firebird Conference 2006</title><content type='html'>The fourth Firebird Worldwide Conference will take place at the &lt;a href="http://www.andelshotel.com/content/en/1.php"&gt;Andels Hotel&lt;/a&gt; in Prague, Czech Republic from the 12th November 2006 until 14th November 2006. The Andels Hotel is a new 4-star hotel, which is located very close to downtown, just across the river. Room tariff is from €99.00 (Euros) per night. More info &lt;a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;amp;page=fb_conference"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6497209471916516823?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6497209471916516823/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6497209471916516823' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6497209471916516823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6497209471916516823'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-conference-2006.html' title='The Firebird Conference 2006'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1756535747331528972</id><published>2007-07-05T21:23:00.001-07:00</published><updated>2007-07-05T21:23:37.834-07:00</updated><title type='text'>Firebird Developer Day 3</title><content type='html'>Firebird Developer Day 3 (FDD 3) will have 3 international speakers Holger Klemt (IBExpert), Alexey Kovyazin (IBSurgeon/IBDeveloper magazine) and Ann Harrison (IBPhoenix). It will held on Piracicaba-SP Brazil, at 29 July (whole day). &lt;a href="http://www.firebirddevelopersday.com.br/fdd/index.html"&gt;Online subscriptions&lt;/a&gt; (this site is using portuguese language)&lt;br /&gt;&lt;br /&gt;I think in Indonesia we still don't have event like this hehehe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1756535747331528972?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1756535747331528972/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1756535747331528972' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1756535747331528972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1756535747331528972'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-developer-day-3.html' title='Firebird Developer Day 3'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-2543895778147761460</id><published>2007-07-05T21:22:00.000-07:00</published><updated>2007-07-05T21:23:07.360-07:00</updated><title type='text'>New Business Model for IBDeveloper Magazine</title><content type='html'>Yes, IB Developer magazine issue 4 is out yesterday. But now it's not "free" anymore. It means they have different business model for this magazine. The "free" here is mean we can read some article from that magazine for free but there is some bonus article that we must pay for it. Of course they do that because of the financial problem, until now they don't have big sponsor for this magazine. Perhaps some company in this world can help them to make the IB/FB community more bigger. You can find their site is in my links in this blog. Here is some words that I take from the IBDeveloper site&lt;br /&gt;&lt;br /&gt;"We’ve come to realise that producing the magazine with only advertising and sponsors to support it is impossible. We’ve decided to change our business model slightly. We are going to run special proprietary editions of each issue with bonus articles. These special editions will be available in electronic (printable PDF) and paper versions. From this issue forward, the latest issue will be available only for purchase for a period—say one or two weeks from publication—and will be fully released afterwards for everyone, minus the bonus articles."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-2543895778147761460?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/2543895778147761460/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=2543895778147761460' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2543895778147761460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/2543895778147761460'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/new-business-model-for-ibdeveloper.html' title='New Business Model for IBDeveloper Magazine'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-688167382364766732</id><published>2007-07-05T21:21:00.000-07:00</published><updated>2007-07-05T21:22:36.631-07:00</updated><title type='text'>FB Selectable Stored Procedure</title><content type='html'>The stored procedure (SP) in Firebird can be used as "view/table", it means we can make not only executable SP but selectable SP. The selectable SP can return multiple record as you can do the same with view/table. The things that can make it happen is the keyword "SUSPEND". The simple example is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE PROCEDURE GET_EMP_PROJ(&lt;br /&gt; EMP_NO SMALLINT)&lt;br /&gt;RETURNS (&lt;br /&gt; PROJ_ID CHAR(5))&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt; FOR SELECT proj_id&lt;br /&gt;     FROM employee_project&lt;br /&gt;     WHERE emp_no = :emp_no&lt;br /&gt; INTO :proj_id&lt;br /&gt; DO&lt;br /&gt;   SUSPEND;&lt;br /&gt;END&lt;br /&gt;&lt;/pre&gt;The above example can be found on the employee example database when you install firebird. The "INTO" keyword must be followed by the return variable (declare in the header of the SP) then we must put the keyword "SUSPEND" after that. The advantage of this selectable SP is we can make it more complex that include some business rule before we return the value that can be selectable, and we can also has a parameters to output different result based on that parameters. As I know there is no much database that has this ability (I only know Oracle, Firebird/Interbase that can do that, perhaps PostgreeSQL).&lt;br /&gt;&lt;br /&gt;We can make this selectable as the usual table, it means we can join it with the other table, view or selectable SP. Before Firebird version 2, we often used it as the solution to make derived table as we know before version 2 the derived table is not supported in FB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-688167382364766732?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/688167382364766732/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=688167382364766732' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/688167382364766732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/688167382364766732'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/fb-selectable-stored-procedure.html' title='FB Selectable Stored Procedure'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-3725283113417937263</id><published>2007-07-05T21:15:00.000-07:00</published><updated>2007-09-24T22:23:43.115-07:00</updated><title type='text'>Installing ZeosDBO</title><content type='html'>There is some people ask me about installing this component, although there is a file named install.html but maybe the instruction in that file not really clear. Here is the installation guide for ZeosDBO 6.1.5 in Delphi 7 (you can do the same way with the other version of ZeosDBO and Delphi)&lt;br /&gt;&lt;br /&gt;1. Unzip the .zip file of ZeosDBO and copy into your Delphi directory like this:&lt;br /&gt;  [Delphi_Directory]\ZeosDBO6.1.5&lt;br /&gt;&lt;br /&gt;2. Goto directory: [Delphi_Directory]\ZeosDBO6.1.5\package\delphi7&lt;br /&gt;  (if your Delphi version is  5 then goto "delphi5")&lt;br /&gt;&lt;br /&gt;3. Double click the ZeosDbo.bpg and then it will opened in your Delphi program&lt;br /&gt;&lt;br /&gt;4. Click View-&gt;Project Manager menu on Delphi&lt;br /&gt;&lt;br /&gt;5. Right click your mouse on one of the .bpl that appear on Project Manager, and then click "Build All From Here"&lt;br /&gt;&lt;br /&gt;6. Click the ZComponentDesignXX.bpl on Project Manager, right click mouse and choose "Install"&lt;br /&gt;&lt;br /&gt;7. Goto "Tools-&gt;Environment Option" of your Delphi's menu and then choose the Library tab&lt;br /&gt;&lt;br /&gt;8. On the "Library path" click the elipsis button (browse), type:&lt;br /&gt;  $(DELPHI)\zeosdbo-6.1.5\packages\delphi7\build&lt;br /&gt;  And then click the add button, then click OK button to finish it&lt;br /&gt;&lt;br /&gt;9. Your Zeos component are ready to use&lt;br /&gt;&lt;br /&gt;If you already have the previous version of ZeosDBO then before start the 9 steps above, you must delete all the ZXXX.bpl and Zxxxx.dcp files from the [Delphi folder]\Projects\Bpl&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-3725283113417937263?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/3725283113417937263/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=3725283113417937263' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3725283113417937263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/3725283113417937263'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/installing-zeosdbo.html' title='Installing ZeosDBO'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1156805591522940037</id><published>2007-07-05T21:14:00.001-07:00</published><updated>2007-07-05T21:14:48.745-07:00</updated><title type='text'>FB Partial Select</title><content type='html'>Firebird has capability to get only N data from database. The syntax is like this:&lt;br /&gt;"SELECT [FIRST N] [SKIP M] * FROM [TABLE/ VIEW/ STORED PROCEDURE]"&lt;br /&gt;&lt;br /&gt;For example, if we want to get the 5 top employee by their salary then we can do&lt;br /&gt;"SELECT FIRST 5 * FROM EMPLOYEE ORDER BY SALARY DESC"&lt;br /&gt;&lt;br /&gt;The "skip" keyword is functioned to skip M data from the top of data that we retrieve through query. For example if we want to get the runner up position for some contestant we can do&lt;br /&gt;"SELECT FIRST 1 SKIP 1 FROM CONTESTANT ORDER BY SCORE DESC"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1156805591522940037?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1156805591522940037/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1156805591522940037' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1156805591522940037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1156805591522940037'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/fb-partial-select.html' title='FB Partial Select'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6977991743175639829</id><published>2007-07-05T21:13:00.001-07:00</published><updated>2007-07-05T21:13:55.687-07:00</updated><title type='text'>Indonesian Delphi Blog</title><content type='html'>The Indonesian Delphi community already has a blog for discussion about Delphi programming language, but not only Delphi, it also discuss about database, programming technique or Delphi component related to Delphi programming. The URL is &lt;a href="http://delphindo.wordpress.com"&gt;&lt;span style="font-weight: bold;"&gt;http://delphindo.wordpress.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You also can be a contributor in this Delphindo (the name for Indonesian Delphi community) blog by sending email to the moderator to let them know that you want to be a contributor, then they will give you a hint how to be a contributor (because I am not a Delphindo blog moderator so I don't know the detail, but if one of the moderator read this article, feel free to add a comment how to be a contributor to Delphindo blog)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6977991743175639829?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6977991743175639829/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6977991743175639829' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6977991743175639829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6977991743175639829'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/indonesian-delphi-blog.html' title='Indonesian Delphi Blog'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6274540787033848463</id><published>2007-07-05T21:12:00.003-07:00</published><updated>2007-07-05T21:12:52.753-07:00</updated><title type='text'>Indonesian Delphi Community</title><content type='html'>I want to introduce one active community for Delphi (one of the programming language). There is &lt;span style="font-weight: bold;"&gt;delphindo@yahoogroups.com&lt;/span&gt; , this community is for Indonesian people so it use Indonesian language. Feel free to join and expand your knowledge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6274540787033848463?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6274540787033848463/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6274540787033848463' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6274540787033848463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6274540787033848463'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/indonesian-delphi-community.html' title='Indonesian Delphi Community'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4437653507796286372</id><published>2007-07-05T21:12:00.001-07:00</published><updated>2007-07-05T21:12:21.547-07:00</updated><title type='text'>World Class Firebird Support</title><content type='html'>I want to introduce you an official mailing list for Firebird support. That is &lt;b&gt;firebird-support@yahoo&lt;wbr&gt;groups.com ,&lt;/b&gt; through this mailing list you can get support for many people arround the world (including the FB developer and Helen Borie (the author of the first Firebird Book)). Of course this mailing list using an english language. This is also very active mailing list that you need to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4437653507796286372?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4437653507796286372/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4437653507796286372' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4437653507796286372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4437653507796286372'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/world-class-firebird-support.html' title='World Class Firebird Support'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-550305369802767516</id><published>2007-07-05T21:11:00.001-07:00</published><updated>2007-07-05T21:11:40.151-07:00</updated><title type='text'>ZeosDBO setting for Firebird &amp; ADO</title><content type='html'>I want to share the setting that I always use in my program to connecting my Delphi with Firebird database through ZeosDBO 6.1.5. First the properti TransactIsolationLevel of TZConnection is set to tiReadCommitted, then choose firebird-1.5 from protocol property. And the rest is as usual (set the "hostname", "database", "user" and "password" property of TZConnection). Please be carefull for the "user" and "password" property of TZConnection because it doesn't encrypt the value so people may read in your .exe program (this is also the lack of this component). The "database" property can be filled by the name of the Firebird database alias or the directory where the Firebird database is exist. The "hostname" property is the computer name (or IP address) where the database is exist. After that you can try to connect to Firebird database.&lt;br /&gt;&lt;br /&gt;The one that special for this component is that you can connect through ADO using "protocol" ADO and then you can select the database through the "database" property with the user interface that is the same when you use the TADOConnection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-550305369802767516?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/550305369802767516/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=550305369802767516' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/550305369802767516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/550305369802767516'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/zeosdbo-setting-for-firebird-ado.html' title='ZeosDBO setting for Firebird &amp; ADO'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-8193592332403951725</id><published>2007-07-05T21:08:00.000-07:00</published><updated>2007-07-05T21:09:47.422-07:00</updated><title type='text'>Firebird locking</title><content type='html'>This problem is always asked by beginner. In Firebird there is one jargon that called "MGA (multi generated architecture)", this MGA can make reader not blocking writer. It means if we only select data from database to read then the others can do update the same data on that table without locked by the reader. What about if 2 user update the same of data? The last that commit data is the winner (if only update data except primary key), but if the update include updating the primary key then the second user will fail because the old primary key is invalid. There is many article that you can found in internet about the keyword MGA here. I hope this simple explanation can show you why locking in Firebird doesn't necessary. But if you want locking, then Firebird support record locking by adding the keyword "WITH LOCK" like this:&lt;br /&gt;"select * from employee where id&gt;30 with lock"&lt;br /&gt;&lt;br /&gt;You can found a lot of explanation about that explicit locking by reading the release notes of Firebird 1.5.3 page 33&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-8193592332403951725?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/8193592332403951725/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=8193592332403951725' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8193592332403951725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/8193592332403951725'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-locking.html' title='Firebird locking'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-1982461777642644654</id><published>2007-07-05T21:07:00.000-07:00</published><updated>2007-07-05T21:08:54.822-07:00</updated><title type='text'>ZeosDBO</title><content type='html'>I want to introduce one component that I usually use in most of my program. That's it ZeosDBO component (&lt;a href="http://zeosforum.net.ms/"&gt;http://zeosforum.net.ms/&lt;/a&gt;). It is a component to make connection to database directly (through database API) and it support many of database like MS SQL Server, Oracle, Interbase, Firebird, Postgress, MySQL, Sybase and also support for ADOConnection. This component offer single interface to various connection to database (like ADO or DBExpress) so we can change the database source without changing our code.&lt;br /&gt;&lt;br /&gt;One that I like from this component is, it's free, open source and can run on Kylix (the Linux version of Delphi) and also ported for Lazarus. But maybe in this time the development of this component is going slowly, it's because this development need more serious people to develop, and from this blog I want to invite you to join to develop this good component. I feel pitty if this good component become dead component.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-1982461777642644654?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/1982461777642644654/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=1982461777642644654' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1982461777642644654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/1982461777642644654'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/zeosdbo.html' title='ZeosDBO'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-6252669970977939211</id><published>2007-07-05T21:06:00.000-07:00</published><updated>2007-07-05T21:07:24.966-07:00</updated><title type='text'>Dummy table</title><content type='html'>In the Firebird or Oracle world there is a dummy table that we often used it to get result from a function or expression, and the result is only 1 record. For example we use this dummy table for get a value from generator/sequence (see in my previous blog that talk about generator). In Firebird the dummy table is called "rdb$database" where is in Oracle, it is called "dual". Maybe the MS Access or MS SQL Server users will see this is rather odd (like FB/Oracle users that see "select multiply_result=2*3" in MS SQL Server)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-6252669970977939211?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/6252669970977939211/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=6252669970977939211' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6252669970977939211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/6252669970977939211'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/dummy-table.html' title='Dummy table'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-7276170991030921312</id><published>2007-07-05T20:56:00.000-07:00</published><updated>2007-07-05T21:05:54.804-07:00</updated><title type='text'>Generator (FB) vs Sequence(Oracle)</title><content type='html'>In this comment I will compare a featured called "generator" in Firebird (FB) with "sequence" in Oracle. Both have the same function that for generate an automatic number. FB give us an easy way to reset or change the value of generator through the "gen_id(generator_name&lt;generator&gt;&lt;nama&gt;&lt;generator&gt;, increment_value&lt;value&gt;&lt;increment&gt;&lt;increment&gt;)" function.&lt;br /&gt;Example: "select gen_id(gen_tb_barang, 1) from rdb$database"&lt;br /&gt;&lt;br /&gt;This "gen_id" function is also very flexible that we can reset the generator value to zero.&lt;br /&gt;Example: "select gen_id(gen_tb_barang, -gen_id(gen_tb_barang,0)) from rdb$database"&lt;br /&gt;And we can also get last generator value with this SQL:&lt;br /&gt;&lt;/increment&gt;&lt;/increment&gt;&lt;/value&gt;&lt;/generator&gt;Example: "select gen_id(gen_tb_barang, 0) from rdb$database"&lt;br /&gt;&lt;nama&gt;&lt;generator&gt;&lt;increment&gt;&lt;increment&gt;&lt;br /&gt;We can get the value of sequence in Oracle with "select sq_tb_barang.nextval from dual". The "nextval" method is increment by 1 by default, we can change the increment step by this SQL command "alter sequence &lt;nama&gt; increment by &lt;increment&gt;&lt;number&gt;".&lt;br /&gt;&lt;br /&gt;To reset sequence to become zero in Oracle is more complex, we can drop that sequence and then create it again for simple but other say this (although I never success with this procedure to make my sequence become zero):&lt;br /&gt;&lt;br /&gt;&lt;/number&gt;&lt;/increment&gt;&lt;/nama&gt;&lt;/increment&gt;&lt;/increment&gt;&lt;/generator&gt;&lt;/nama&gt;&lt;/nama&gt;&lt;/generator&gt;The logic is:&lt;br /&gt;1) get the curval from the sequence&lt;br /&gt;2) alter the sequence to have increment as the curval * -1&lt;br /&gt;3) get the nextval from the sequence&lt;br /&gt;4) alter the sequnce to have increment as 1&lt;br /&gt;&lt;br /&gt;The code is:&lt;br /&gt;&lt;br /&gt;declare Handle Integer;&lt;br /&gt;            SqlText varchar2(2000);&lt;br /&gt;            Temp Integer;&lt;br /&gt;Begin&lt;br /&gt;   select sq_barang.nextval into temp from dual;&lt;br /&gt;   temp := temp * -1;&lt;br /&gt;   SqlText := 'Alter Sequence sq_barang increment by ' || to_char(temp);&lt;br /&gt;   Handle := dbms_sql.open_cursor;&lt;br /&gt;   dbms_sql.parse(handle, SqlText, DBMS_SQL.NATIVE);&lt;br /&gt;   select sq_barang.nextval into temp from dual;&lt;br /&gt;   SqlText := 'Alter Sequence  sq_barang increment by 1' ;&lt;br /&gt;   dbms_sql.parse(handle, SqlText, DBMS_SQL.NATIVE);&lt;br /&gt;End;&lt;br /&gt;&lt;generator&gt;&lt;nama&gt;&lt;br /&gt;&lt;/nama&gt;&lt;/generator&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-7276170991030921312?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/7276170991030921312/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=7276170991030921312' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7276170991030921312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/7276170991030921312'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/generator-fb-vs-sequenceoracle.html' title='Generator (FB) vs Sequence(Oracle)'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-5852290769756445150</id><published>2007-07-05T20:49:00.000-07:00</published><updated>2007-07-05T20:51:51.269-07:00</updated><title type='text'>Why using Firebird?</title><content type='html'>This statement is base on my experience, so maybe it's not true for you. Firebird version that I know for the first time is 1.0 version, since then I fall in love with Firebird (FB). Thanks for my friend that introduce this database for me (he is my senior in STTS and I was work from him as part time programmer when I was still in university). The first point that I like is the installation is quite simple and easy to understand. Second, it already has view, trigger &amp;amp; store procedure that using PSQL (the procedural language that similar with Oracle PL/SQL) , so I not spend to much time to understand FB. Third, FB is free and there is so much free tools that you can use, like IBExpert Personal Edition (one of the best tool for administrating FB) for free. Fourth, it has an active community that will help your probem at the FB Support mailing list (firebird-support@yahoogroups.com) . The 1.5.x version has more speed than 1.0.x version. Many people ask about the documentation of FB, yes it is still in development, the one that I use is the Interbase documentation and FB release notes , but now there is a book by Helen Borie that explain almost all thing that you want to know about Firebird (I already add this URL to this Blog's links). FB is perfect for small to midsize company (I suggest you to use 1.5.3 version for better performace), but I think it'll perform better after the 3.0 version that can use multiple processor (SMP). The lack of the 1.5.x version is that it doesn't support derived table and the poor index tree but both will be fixed in 2.0 version. If you have a comment please add in this blog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-5852290769756445150?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/5852290769756445150/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=5852290769756445150' title='2 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5852290769756445150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/5852290769756445150'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/why-using-firebird.html' title='Why using Firebird?'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7278166498489373411.post-4526855922099915709</id><published>2007-07-05T20:46:00.000-07:00</published><updated>2007-07-05T20:49:53.070-07:00</updated><title type='text'>Firebird 1.5.3 is launched</title><content type='html'>&lt;div class="entry"&gt;Hello I want to let you know that version 1.5.3 is already launch and you can download it. Not a major version, just a lot of bug fixed. I recommened using this version, because this version is very stable (I already try it) compare with 1.5.0, but doesn’t improve to much if you already using 1.5.2 version. &lt;p&gt;This 1.5.3 version also include Release Notes in PDF that I think more complete version (including release notes from version 1.5.0 until 1.5.3)&lt;br /&gt;Now version 2.0 is still in Beta 2 version. Hope this will be released in March.&lt;/p&gt; &lt;p&gt;For small to midsize company, I think this database will rock you. (Also available for Linux version) &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7278166498489373411-4526855922099915709?l=firebird-with-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firebird-with-delphi.blogspot.com/feeds/4526855922099915709/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7278166498489373411&amp;postID=4526855922099915709' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4526855922099915709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7278166498489373411/posts/default/4526855922099915709'/><link rel='alternate' type='text/html' href='http://firebird-with-delphi.blogspot.com/2007/07/firebird-153-is-launched.html' title='Firebird 1.5.3 is launched'/><author><name>Cipto KH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
