Board logo

标题: SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗? [打印本页]

作者: Jerry.huang    时间: 2007-5-21 19:40     标题: SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

程序样例:

$LIENS    系统开始对数据库取数放到屏幕里fficeffice" />

If !clalev([F:ESD] ): Local File EXTSHIPD [ESD] : Endif

nolign=0  

For [F:ESD]ESD1 Where SDHNUM=[M:ESH0]SDHNUM

    [M:ESH1]NBLIG=[F:ESD]NBLIG                                           

    [M:ESH1]ITMREF(nolign)=[F:ESD]ITMREF                          nolign是行号索引,从0开始。因为是一行行取,所以nolign要循环+1

    [M:ESH1]QTY(nolign)=[F:ESD]QTY

    [M:ESH1]SAU(nolign)=[F:ESD]SAU

    [M:ESH1]ISDLIN(nolign)=[F:ESD]ISDLIN

    [M:ESH1]FROSER(nolign)=[F:ESD]FROSER

    [M:ESH1]TOSER(nolign)=[F:ESD]TOSER

    [M:ESH1]PITCDT(nolign)=[F:ESD]PITCDT

    nolign+=1

Next

Return


作者: Jerry.huang    时间: 2007-5-22 18:31     标题: 其实你的系统也可以跨数据库。

第一种方法:

1、你的程序里面采用标准sql语句,对任何数据库语言都通用。但是采用标准sql语句,无疑放弃了各种数据库的优势用法,同时某些操作各种sql语句并没有统一,如左连接,sqlserver 与DB2左连接的格式就不一样。

2、你的程序控件里面不要绑定特定数据库的表。如PB的数据窗口,肯定要绑定表,数据窗口不绑定表的话没有办法操作,这个时候你就只能针对每一种数据库做一个数据窗口,程序中根据用户选择的数据库种类进行判断选用不同的数据窗口。一般一个大的系统有上万甚至十几万这种数据窗口就得根据数据库种类做几套,一旦发生修改,几套都需要修改。工作量,保持一致性难度极大。


作者: jiu    时间: 2007-5-23 23:17     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

看X3的代码,很怪的感觉
作者: Jerry.huang    时间: 2007-5-24 04:38     标题: 第二种跨数据库的方法

第二种方式:是你的程序里面不用任何数据库的sql语句。       你自己编一套sql语句进行数据库读写。当然你自己编的sql语句肯定是不能执行的。这个时候你就需要做一个翻译器,将你自己的sql语句翻译成对应数据库的sql语句,如SQL SERVER 的sql语句,这样就可以进行数据库操作了。这样一来在你的程序与数据库之间通过翻译器搭建了一个桥梁。这样的做虽然中间多了一道操作,但是它的好处是,假如你做两种数据库的翻译器,你的程序就可以跑在两种数据库上了。多一个翻译器就能多适用于一种数据库。而你的程序永远只有一套,只不过通过编译器翻译成能在不同数据库上运行的程序了。Sage X3 就是这样做的。原理实际上非常简单,但是第一个想到这种方法、最早的应用,并采用这种方法搭建整个系统的,就是SAGE X3
作者: Jerry.huang    时间: 2007-5-24 18:04     标题: Sage X3跨应用平台

看了前面的跨数据库的实现技术,相信你也明白跨应用平台的实现方法:X3的自有开发语言不能直接运行,需要编译。Sage的编译器同时将自己的程序编译成两套目标代码,一套能在C/S环境下运行,一套能在B/S环境下运行。通过这种方法,X3的语言无需跟随着外部环境的变化而改变。所需要改变的,当出现一个新的运行环境只需要增加一个编译器就可以啦。因此X3 只需要把精力放在功能的逐渐完善上,而不需要随着环境的变化,用不同的语言开发。
作者: jiu    时间: 2007-5-24 21:08     标题: Re:Sage X3跨应用平台

学习X3开发语言难度大不大?

作者: 三藏    时间: 2007-5-24 22:46     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

研究的很认真么,继续加油吧——多问问人可以少走点弯路
作者: fahrenheit    时间: 2007-5-24 22:49     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

~o~,原来是这样。。。。
作者: Jerry.huang    时间: 2007-5-25 21:10     标题: 学习X3的难度不大。

学习X3的难度不大。如从表里取数到窗口中,只需如下语句[M:XXX]YYY=[F:AAA]BBB 就能将AAA表的字段BBB的值放到窗口XXX的YYY域中。

不过虽然学习难度不大,但是得改变观念,X3的开发和面向对象的开发有一点不同。


作者: lavender    时间: 2007-5-28 18:11     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

1、虽然经过JERRY几经解释,但是对开发语言,还是感觉懵懵懂懂,有没有培训的详细一点的资料啊?

2、感觉你说的对每一种数据库做一个数据窗口是其他语言最主要的瓶颈,但是X3的编译器不是也在做这个工作吗?只不过提前写好了放在编译器里了,而且我在想是不是编译器里只预存了针对几种大型数据库的窗口,有些没预存的,是不能跨数据库的。

因为还没弄懂,说的不对啊,请专家老师指点,以求进步。


作者: Jerry.huang    时间: 2007-5-28 18:18     标题: 不是预存窗口

X3编译器不是预存几种数据库的数据窗口,而是根据源程序编译形成几种数据库的运行控件。当然编译器有几种数据库的翻译程序,就只能在这几种数据库下运行。最大的差别是源代码只有一套,无需根据不同的数据库准备不同的程序。至于开发资料是有的,通过合适的渠道就能取得。
作者: 卖ERP的老杨    时间: 2007-6-10 12:45     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

今天在2605打了个通宵,搞好案头天已放亮.虽然很累,可看到这篇帖子心里非常高兴.

我们常说我们X3的技术很好,可是销售却很难把技术优势转化为销售优势;今天至少我知道为什么我们可以很方便的跨平台跨数据库了


作者: lavender    时间: 2007-6-11 17:35     标题: jerry,你能把帖子主题的样例翻译一下吗?谢谢

我没读懂样例的意思。
作者: Jerry.huang    时间: 2007-6-11 19:24     标题: 样例详解

程序样例:

$LIENS    系统开始对数据库取数放到屏幕里fficeffice" />

If !clalev([F:ESD] ): Local File EXTSHIPD [ESD] : Endif    判断表esd是否打开,如果没有打开,则打开该表

nolign=0    行号初始化 窗口列表中第一行中行号为0

For [F:ESD]ESD1 Where SDHNUM=[M:ESH0]SDHNUM   循环//循环条件窗口esho中的单号,SDHNUM=SDHNUM,每循环一次,找到下一条满足条件的记录

    [M:ESH1]NBLIG=[F:ESD]NBLIG                                            将表ESD的值NBLIG 放到窗口ESH1的NBLIG列中

    [M:ESH1]ITMREF(nolign)=[F:ESD]ITMREF                 同上,逐行将表中记录放到窗口中。       

    [M:ESH1]QTY(nolign)=[F:ESD]QTY

    [M:ESH1]SAU(nolign)=[F:ESD]SAU

    [M:ESH1]ISDLIN(nolign)=[F:ESD]ISDLIN

    [M:ESH1]FROSER(nolign)=[F:ESD]FROSER

    [M:ESH1]TOSER(nolign)=[F:ESD]TOSER

    [M:ESH1]PITCDT(nolign)=[F:ESD]PITCDT

    nolign+=1    放到窗口的下一行

Next

Return


作者: 绿色心情    时间: 2007-6-11 23:43     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

who is jerry?


作者: Jerry.huang    时间: 2007-6-12 20:05     标题: I am Jerry ,anything ?

34
作者: Jerry.huang    时间: 2007-6-13 00:31     标题: 楼上的,我就是,有事吗?

1234
作者: fengyxj    时间: 2007-6-14 18:55     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

有没有X3二次开发的资料没有
作者: Jerry.huang    时间: 2007-6-22 18:14     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

楼上的,咋回答你的这个问题尼:I am Jerry of Tom family, HAHA。有事吗


作者: junone    时间: 2007-7-5 18:30     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

那你为什么用tom的头像~~:)
作者: Jerry.huang    时间: 2007-7-8 07:23     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

I am,呵呵
作者: zlh2007    时间: 2007-7-14 16:56     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

x3的跨操作系统平台是怎么实现的呢


作者: Jerry.huang    时间: 2007-7-16 06:51     标题: Re:SAGE X3自有开发语言,能跨应用平台,跨数据库,你信吗?

Me




欢迎光临 赛捷软件论坛 (http://sagesoft.cn/bbs/) Powered by Discuz! 7.2