顯示具有 DBX - PostgreSQL 標籤的文章。 顯示所有文章
顯示具有 DBX - PostgreSQL 標籤的文章。 顯示所有文章

2014/01/22

Session funtion programming in PostgreSQL's PL/pgSQL

In SQL Server, we can to used:

DECLARE @Variable Type
SELECT * FROM TableName WHERE KeyField = @Variable

like something...

But, PostgreSQL not support SESSION VARIABLE.

However, In PostgreSQL 9.x, it add the statement in PL/pgSQL.

1. DO statement


Example code:
DO $$
DECLARE myvar integer;
BEGIN
    SELECT 5 INTO myvar;

    DROP TABLE IF EXISTS tmp_table;
    CREATE TABLE tmp_table AS
    SELECT * FROM yourtable WHERE   id = myvar;
END $$;

SELECT * FROM tmp_table;


2. CREATE OR REPLACE FUNCTION


Example code:
CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
  one int;
  two int;
BEGIN
  one := 1;
  two := 2;
  RETURN one + two;
END
$$;
SELECT somefuncname();



These solution can solve need execute PL/pgSQL in session function.

The Sequelae(後遺症) is remain temp tempFunction / tempTable in PostgreSQL database, when the executed PL/pgSQL command.

3. Session Variables


See also:
How to declare local variables in postgresql?
PostgreSQL Documentation: SQL-DO
How to declare a variable in a PostgreSQL query

2012/04/24

Create DBDEMOS from BDE into PostgreSQL

BDE have a demo database: DBDEMOS.

But, dbExpress is not easy a demo database, so I just to create a sample program.

I used:
1. Devart dbExpress for PostgreSQL
2. Delphi XE
3. BDE + Paradox database

Below my example picture:
First, I select our db data (C:\Program Files (x86)\Common Files\CodeGear Shared\Data; C:\Program Files (x86)\Common Files\Borland Shared\Data), when we get all xml's db file(same Paradox format) on the folder.

Then we can to click "Create SQL". Create SQL Statement when after copy to pgAdmin run it.
Or to use "Create Table" direct to create table.

Setting PostgreSQL's login param.

Final, click "Import Postgres", The data pump will all data append from xml into PostgreSQL.

Now, we can try dbexpress framework for PostgreSQL!

2012/04/05

Delphi裡的夢幻逸品 - dbExpress driver for PostgreSQL

其實從 C++ Builder 6 開始,就很喜歡 dbExpress 的設計方式,雖然必需搭配 DataSnap (Midas) 才能完全發揮它的作用,但是看中它仍持續成長的潛能以及多樣化的驅動連結,至今讓我只要有機會一定會把它納到我的專案中

在 C++ Builder 6 時期,免費的 dbExpress for MySQL 5 讓我吃了不少苦頭,後來才發現 Devart 公司有出相關的 Driver,在當時就非常想要購買這項產品。

在 MySQL 被 Oracle 強暴 購買後,我也斷了使用MySQL的想法,取而代之的就是與 Oracle 近乎同等級的資料庫 -- PostgreSQL

好陌生的資料庫,dbExpress有可以使用的Driver嗎?

有,Kylix有!但也只限在Linux下使用 (2002年的骨灰級產物了...)

咦!C++ Builder XE2 沒有,Delphi XE2 也沒有 (廢話,這兩個是相同的產品),那怎麼辦?

於是在 Devart 網站中找到了 dbExpress for PostgreSQL,看完它的介紹後,真覺得是個夢幻的逸品

要OleDB嗎?不用!
要ODBC嗎?不用!
要Native Client嗎?不用!

它只要靠自己就吃天下了!讚吧!

不囉嗦,先來看看安裝:
就是這頭大象!會飛的哦!(笑)
「Next」按沒機次就安裝好了,安裝速度飛快!

安裝後即會在Data Explorer增加Devart PostgreSQL群組
Data Explorer裡的Devart PostgreSQL群組
因為Devart的dbExpress Driver並不是使用.NET寫的,所以沒辦法在Data Explorer列出資料庫的細節內容,但也換得更佳的速度

還是想看 Tables 和 Views?用 pgAdmin III 還比較實用些。

怎麼連接到資料庫呢?三個步驟,如下圖:
前兩個步驟大約需要6000毫秒(ms)的時間,最後一步大約是10毫秒(ms)吧

連結技巧就這樣,沒了!會不會太簡單?

除了配服Devart的技術外,更讓人覺得高興的是這項工具到現在還有在持續維護,真不愧是Delphi的資料庫專家!

而且還能搭配Devart自家的dbMonitor,營造出SQL Server平台外的Profiler介面,對於資料庫連結能有更進一步的訊息可供調整,這玩樣兒真是太棒了啦!


與其花大錢買昂貴的資料庫,還不如花少少的錢買個好用的驅動,再搭配上可商用的免費資料庫,這樣不僅專案建置的成本降低,更可以縮短開發的工時,何樂而不為呢!

有機會一定要來試試 Devart 的產品,真的是超級好用的啦!

最後還有一句話要說:dbExpress for PostgreSQL,我愛死你了!

2012/04/09補充:

令人振奮的消息,給想在FireMonkey實現MacOS 2-Tier 應用程式的伙伴們

因為PostgreSQL到目前為止沒有正式給MacOS的ODBC Driver,所以想靠dbExpress for ODBC的想法是不可行的

然而,Devart 公司已經先設想到這點了

詳請可參閱:Delphi XE2 FireMonkey Applications Deployment on Mac OS X

在專案中使用 Direct Mode 再加上 Midas 及 dbExpress for PostgreSQL Driver (libmidas.dylib, libdbexpmda40.dylib)
就可以順利在 MacOS上順利連結 PostgreSQL (32 / 64bit) 囉!

--等我入手 MacOS 後再來補發 dbExpress for PostgreSQL + FireMonkey 的試用心得! :D --