如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

          CowNew開(kāi)源團(tuán)隊(duì)

          http://www.cownew.com 郵件請(qǐng)聯(lián)系 about521 at 163.com

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            363 隨筆 :: 2 文章 :: 808 評(píng)論 :: 0 Trackbacks

          ??????? 很多關(guān)心CowNew的朋友紛紛給我發(fā)email或者qq留言,說(shuō)看到最近CowNew開(kāi)源項(xiàng)目沒(méi)有動(dòng)靜了,問(wèn)我是不是虎頭蛇尾死掉了。謝謝大家的關(guān)心,CowNew沒(méi)有停止進(jìn)步的步伐,最近一段時(shí)間沒(méi)有動(dòng)靜是因?yàn)槲覀冊(cè)趷烆^做產(chǎn)品的開(kāi)發(fā)。經(jīng)過(guò)一個(gè)多月的努力,在kingchou、紫龍等隊(duì)友的團(tuán)結(jié)奮斗下,SQL解析引擎和JDBMonitor都已經(jīng)取得了階段性的成果。
          ??????? SQL解析引擎已經(jīng)可以生成完整的異構(gòu)SQLAST,除有少數(shù)小bug之外已經(jīng)基本達(dá)到了預(yù)期的目標(biāo)。另外在SQL解析引擎基礎(chǔ)上開(kāi)發(fā)的CowNewSQL翻譯器也可以實(shí)現(xiàn)了基本的功能。可以翻譯大部分主流的sql語(yǔ)句,比如:
          (1)可以將符合CowNewSQL語(yǔ)法的select now()翻譯成對(duì)應(yīng)如下的特定平臺(tái)sql:
          mssql:Select GETDATE()
          mysql:Select NOW()
          oracle8i:Select SYSDATE FROM DUAL
          oracle9i:Select SYSDATE FROM DUAL
          (2)可以將符合CowNewSQL語(yǔ)法的
          update T2 set fid=t1.fid from (select * from t2
          left join t3 on t3.fid=t2.fid union select * from t5)
          翻譯成對(duì)應(yīng)如下的特定平臺(tái)sql:
          mssql:UPDATE T2 SET fid = t1.fid
          FROM(
          Select *
          From t2 left join t3 on t3.fid = t2.fid
          union Select *
          From t5
          )
          mysql:UPDATE T2 SET fid = t1.fid
          FROM(
          Select *
          From t2 left join t3 on t3.fid = t2.fid
          union Select *
          From t5
          )
          oracle8i:UPDATE T2 SET fid = t1.fid
          FROM(
          Select *
          From t2,t3 WHERE t3.fid = t2.fid(+)
          union Select *
          From t5
          )
          oracle9i:UPDATE T2 SET fid = t1.fid
          FROM(
          Select *
          From t2 left join t3 on t3.fid = t2.fid
          union Select *
          From t5
          )

          (2)可以將符合CowNewSQL語(yǔ)法的
          select top 20 ABS(-1),lcase(trim(name)),tochar(now()), ADD_SECONDS(now(),22),t2.name,DateAdd(Year,now(),3) from T_Table
          ,(select * from T_MD where FID=2222222222) as tmd
          left join T_T4 on tmd.id>T_Table.id
          left join T_T2 as t2 on T_T2.id=T_Table.id
          right join T_T3 as t3 on t2.id=t3.id
          翻譯成對(duì)應(yīng)如下的特定平臺(tái)sql:
          mssql:Select? top 20
          ?ABS(-1) , LOWER(LTRIM(RTRIM(name)) ,CONVERT(VARCHAR, GETDATE()),DATEADD(second,GETDATE(),22),t2.name,DATEADD(Year, GETDATE(), 3)
          From T_Table,
          Select *
          From T_MD
          Where FID = 2222222222 as tmd
          ?left join T_T4 on tmd.id > T_Table.id left join T_T2 as t2 on T_T2.id = T_Table.id right join T_T3 as t3 on t2.id = t3.id
          mysql:Select? ABS(-1) , LOWER(LTRIM(RTRIM(name)) ,CONCAT('', NOW()),DATE_ADD(NOW(), INTERVAL 22 SECOND),t2.name,DATE_ADD(3, INTERVAL NOW() YEAR)
          From T_Table,
          Select *
          From T_MD
          Where FID = 2222222222 as tmd
          ?left join T_T4 on tmd.id > T_Table.id left join T_T2 as t2 on T_T2.id = T_Table.id right join T_T3 as t3 on t2.id = t3.id limit 0, 20

          oracle8i:Select? ABS(-1) , LOWER(LTRIM(RTRIM(name)) , TO_CHAR(SYSDATE) ,(SYSDATE + 22/86400),t2.name,add_months(3, TRUNC(SYSDATE) * 12)
          From T_Table,
          Select *
          From T_MD
          Where FID = 2222222222 as tmd
          ,T_T4,T_T2 as t2,T_T3 as t3 WHERE ROWNUM <= 20
          ?AND tmd.id > T_Table.id(+) AND T_T2.id = T_Table.id(+) AND t2.id(+) = t3.id
          oracle9i:Select? ABS(-1) , LOWER(LTRIM(RTRIM(name)) , TO_CHAR(SYSDATE) ,(SYSDATE + 22/86400),t2.name,add_months(3, TRUNC(SYSDATE) * 12)
          From T_Table,
          Select *
          From T_MD
          Where FID = 2222222222 as tmd
          ?left join T_T4 on tmd.id > T_Table.id left join T_T2 as t2 on T_T2.id = T_Table.id right join T_T3 as t3 on t2.id = t3.id WHERE ROWNUM <= 20

          ??????? 但是這些sql翻譯只是按照語(yǔ)法手冊(cè)進(jìn)行的翻譯,還沒(méi)有經(jīng)過(guò)正式數(shù)據(jù)庫(kù)環(huán)境的測(cè)試,還需要進(jìn)一步的測(cè)試。
          ??????? 目前僅支持MSSQLSERVER,MYSQL,Oracle8i,Oracle9i,我們計(jì)劃進(jìn)一步支持DB2UDB,FireBird、ACCESS等數(shù)據(jù)庫(kù)。而且SQL解析引擎是用JDK5開(kāi)發(fā)的,我們將是用Retrotranslator將其轉(zhuǎn)換個(gè)以保證可以在JDK1.4上運(yùn)行。

          ??????? JDBMonitor的需求已經(jīng)基本完成,但是新增的功能目前只能運(yùn)行在MSSQLSERVER上,我們準(zhǔn)備等COWNEWSQL翻譯器開(kāi)發(fā)完畢后,將JDBMonitor涉及到數(shù)據(jù)庫(kù)操作的地方是用COWNEWSQL翻譯器來(lái)完成多數(shù)據(jù)庫(kù)支持,所以我們將會(huì)推遲JDBMonitor的原計(jì)劃的發(fā)版日期。
          ??????? 目前我們的項(xiàng)目還是很缺乏高手,比如CowNewSQL這塊就缺乏對(duì)各種數(shù)據(jù)庫(kù)比較熟悉的朋友,還有能對(duì)CowNewSQL進(jìn)行全面測(cè)試的朋友,希望對(duì)這方面開(kāi)發(fā)比較感興趣的能加入到我們的開(kāi)發(fā)中來(lái),共同打造優(yōu)秀的開(kāi)源產(chǎn)品。可以直接給我發(fā)送郵件about521 at 163.com

          posted on 2006-07-03 00:35 CowNew開(kāi)源團(tuán)隊(duì) 閱讀(2727) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宣化县| 凤台县| 全椒县| 易门县| 武安市| 临沂市| 福州市| 肇庆市| 南皮县| 汝州市| 岑巩县| 兴化市| 安阳县| 兴宁市| 夏津县| 和政县| 灵川县| 西峡县| 阳泉市| 河北省| 玛纳斯县| 霍林郭勒市| 凌源市| 武邑县| 深泽县| 且末县| 上杭县| 阳原县| 桃江县| 调兵山市| 苍溪县| 化德县| 钦州市| 游戏| 来宾市| 华宁县| 泾川县| 晋中市| 唐海县| 乌兰浩特市| 萍乡市|