Tmax 4Gl Programming Guide (Power Builder, Delphi, Visual Basic, Visual Basic.net, C#.net) Tmax 3.8 Tmax 4GL Programming Guide

Size: px
Start display at page:

Download "Tmax 4Gl Programming Guide (Power Builder, Delphi, Visual Basic, Visual Basic.net, C#.net) Tmax 3.8 Tmax 4GL Programming Guide"

Transcription

1 Tmax 4GL Programming Guide (Power Builder, Delphi, Visual Basic, Visual Basic.net, C#.net) : TM4P : Tmax 3.8 : July 2, 2003 : Sep 20, 2003

2 Tmax 4Gl Programming Guide (Power Builder, Delphi, Visual Basic, Visual Basic.net, C#.net) Tmax 3.8 Tmax 4GL Programming Guide

3 Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights Reserved.,,, Tmax Soft.,,,..... Tmax, WebT, WebtoB, JEUS, Host-Link, WebInOne Tmax Soft Co., Ltd.. Tmax Tel: , 2006 Fax: Tmax Administration Guide Document Edition Date Version TM4P JUN 21, 2002 Tmax 3.8 Tmax. Tmax Standard. Tmax Standard TP Function + 2 Phase Commit Web Admin Console, X.25 Gateway, TCP/IP Gateway, Host-Link, Power Tmax Options Builder Interface Module, SERIAL Gateway, TCP/IP Service Gateway Tmax 4GL Programming Guide

4 Tmax 4GL Programming GuidePower Builder, Delphi, Visual Basic,.net framework(visual Basic.net, C#.net) 4GL Tmax.,, 4GL Tmax. 4GL Application4GL Tmax.? Tmax 4GL Tmax. Tmax Tmax Reference ManualTmax Programming Guide.? 1. Power Builder : Power Builder Tmax. 2. Visual Basic : Visual Basic Tmax. 3. Delphi : Delphi Tmax. 4. Visual Basic.net : Visual Basic.net Tmax. 5. C#.net : C#.net Tmax. Tmax Reference Manual Tmax FDL Reference Manual Tmax Programming Guide { } [ ] ( ) Numeric String Literal abc abc Tmax 4GL Programming Guide

5 I. Power Builder pb_reset... 9 pb_tpalloc pb_tpstart pb_tmaxreadenv pb_tpend pb_tpcall pb_etpcall pb_tpfcall pb_tpacall pb_tpgetrply pb_tpcancel pb_tpcallw pb_tpconnect pb_tpsend pb_tprecv pb_tpdiscon pb_isblocked pb_tpbroadcast pb_tpsetunsol pb_getunsold pb_tpget pb_tpgetunsol pb_tpput f_data f_datadel f_fdata f_fdatadel f_form f_getdata pb_tx_begin pb_tx_commit pb_tx_rollback pb_tx_info pb_tx_set_commit_return pb_tx_set_transaction_control pb_tx_set_transaction_timeout tp_init tuxreadenv tp_term tp_call Tmax 4GL Programming Guide

6 tp_fcall tp_acall tp_getrply tp_cancel tuxcall tp_connect tp_conv tp_send tp_recv tp_discon isblocked tp_broadcast tp_subscribe tp_unsubscribe tp_begin tp_commit tp_abort Power Builder Sample II. Visual Basic PUTINT PUTLONG PUTFLOAT PUTDOUBLE PUTVAR PUTCAR_BA PUTSTR PUTCHR PUTCAR GETINT GETLONG GETFLOAT GETDOUBLE GETVAR GETCAR_BA GETSTR GETCHR GETCAR TmaxError FdlErrorMsg FilltpstartBuf Visual Basic Sample III. Delphi Tmax 4GL Programming Guide

7 2. Delphi Sample IV. Visual Basic.net ErrorMsg FdlErrorMsg PUTINT PUTLONG PUTDOUBLE PUTFLOAT PUTSHORT PUTCAR PUTVAR PUTCHR PUTCAR PUTCAR GETINT GETLONG GETDOUBLE GETFLOAT GETSHORT GETCAR GETVAR GETCHR GETCAR GETCAR FilltpstartBuf Visual Basic.NET Sample V. C#.net C#.NET Sample Tmax 4GL Programming Guide

8 I. Power Builder Tmax 4GL Programming Guide

9 1. Tmax. (tmax.pbd).. -.,. tmax.pbd. tmax.pbd. Tmax 4GL Programming Guide

10 2. pb_reset long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax uo_tmax.usr_name = 'tmaxclient' uo_tmax.clt_name = 'cilent01' uo_tmax.dom_pwd = 'tmax' uo_tmax.usr_pwd = 'client01' uo_tmax.flags = uo_tmax.tpunsol_ign ret = uo_tmax.pb_tpstart() if ret < 0 then error processing end if Tmax 4GL Programming Guide

11 pb_tpalloc svcname : itype : ) STRUCT, STRING, CARRAY, FIELD isubtype : ilen : size ( : 1024) long ret Tmax 4GL Programming Guide

12 long buf u_tmax uo_tmax uo_tmax = CREATE u_tmax uo_tmax.usr_name = 'tmaxclient' uo_tmax.clt_name = 'cilent01' uo_tmax.dom_pwd = 'tmax' uo_tmax.usr_pwd = 'client01' uo_tmax.flags = uo_tmax.tpunsol_ign ret = uo_tmax.pb_tpstart() if ret < 0 then error processing end if Tmax 4GL Programming Guide

13 tpbegin long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax uo_tmax.usr_name = 'tmaxclient' uo_tmax.clt_name = 'cilent01' uo_tmax.dom_pwd = 'tmax' uo_tmax.usr_pwd = 'client01' uo_tmax.flags = uo_tmax.tpunsol_ign ret = uo_tmax.pb_tpstart() if ret < 0 then error processing end if uo_tmax.pb_tpbegin Tmax 4GL Programming Guide

14 pb_tpstart pb_tpstart() returns integer Tmax Tmax. IP (TMAX_ HOST_ADDR), (TMAX_HOST_PORT), SDLFILE, FIELD(FDL) FDLFILE. < > 1. dos autoexec.bat. : SET TMAX_HOST_ADDR= SET TMAX_HOST_PORT=8888 SET SDLFILE=C:\tmax\sdl\tmax.sdl SET FDLFILE=C:\tmax\fdl\tmax.fdl 2. unix(ksh).profile. : export TMAX_HOST_ADDR= export TMAX_HOST_PORT=8888 export SDLFILE=C:\tmax\sdl\tmax.sdl export FDLFILE=C:\tmax\fdl\tmax.fdl IP FIELD IP FIELD pb_tpstart() u_tmaxinstance. usr_name clt_name dom_pwd usr_pwd flags TPUNSOL_IGN TPUNSOL_POLL (pb_tpgetunsol() TPUNSOL_HND (pb_tpsetunsol(), pb_getunsold() long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax uo_tmax.usr_name = 'tmaxclient' uo_tmax.clt_name = 'cilent01' uo_tmax.dom_pwd = 'tmax' uo_tmax.usr_pwd = 'client01' uo_tmax.flags = uo_tmax.tpunsol_ign Tmax 4GL Programming Guide

15 ret = uo_tmax.pb_tpstart() if ret < 0 then error processing end if Integer. -1 tperrnoerror. Tmax Reference Manualtpstart(). Tmax 4GL Programming Guide

16 pb_tmaxreadenv pb_tmaxreadenv(string env_file, string section) returns integer long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax ret = uo_tmax.pb_tmaxreadenv(./tmax.env, "TMAX") if ret < 0 then error processing end if Tmax 4GL Programming Guide

17 Integer. -1 tperrnoerror. Tmax Reference Manualtmaxreadenv(). Tmax 4GL Programming Guide

18 pb_tpend pb_tpend() returns integer long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax ret = uo_tmax.pb_tpend() if ret < 0 then error processing end if Integer. -1 tperrnoerror. Tmax Reference Manualtpend(). Tmax 4GL Programming Guide

19 pb_tpcall pb_tpcall(string svcname, string itype, string idata, string from[], ref string odata[]) returns integer. idata svcname. form columndataodata. svcname : itype : TAB( ~t ) NewLine( ~n ) ) - STRUCT itype = STRUCT~tstruct_name~n - STRING itype = STRING~t~n - FIELD KEY itype = FIELD~t~n idata : TAB NewLine form : odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB, RowNewLine. TmaxInstance flagstimeout. msg : message tperrno : tpurcode : User Code(tpreturn ) flags : pb_tpcall flag TPNOTRAN non transaction mode Tmax 4GL Programming Guide

20 TPNOCHANGE TPNOBLOCK non Blocking Mode TPNOTIME Blocking timeout timeout : pb_tx_set_transaction_timeout Blocking timeout - STRUCT string itype, input, form[], output[] int ret itype = "STRUCT~t" + "kstrdata~n" input = string(len(before.text)) + ~t + before.text + ~n form[1] = "len" + ~n + & "sdata" + ~n + & ~n form[2] = ~n output[1] = space(1024) uo_tmax.flags = uo_tmax.tpnochange uo_tmax.timeout = 50 ret = uo_tmax.pb_tpcall("sync", itype, input, form, output) if ret < 0 then messagebox( "ERROR","tpcall Failed : Error Code =" + string(uo_tmax.tperrno) ) return end if afterlen.text = uo_tmax.f_getdata(form[1], output[1], 1, "len") afterdata.text = uo_tmax.f_getdata(form[1], output[1], 1, "sdata") - FIELD KEY long ret string itype, input, form[], output[] if isnull(sle_1.text) or sle_1.text = '' then end if itype = "FIELD~t~n" input = "INPUT~t" + sle_1.text + "~n" form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(40) ret = uo_tmax.pb_tpcall("fdltoupper", itype, input, form[], output[]) Tmax 4GL Programming Guide

21 if ret < 0 then error processing end if Tmax Reference Manual tpcall(). pb_tpacall, pb_tpgetrply Tmax 4GL Programming Guide

22 pb_etpcall pb_etpcall(string svcname, string itype, string idata, string from[], ref string odata[]) returns integer pb_tpcall pb_tpcall. FILENAM, NEWFILE. TP_BITMAP CARRAY. FILENAM input ( 4M ) TP_BITMAP. NEWFILE idata. TP_BITMAP NEWFILE. NEWFILE. svcname : itype : TAB( ~t ) NewLine( ~n ) idata : TAB NewLine ) - input = "FILENAM~t" + FileName + "~n" - input = "NEWFILE~t" + FileName + "~n" form : odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB Tmax 4GL Programming Guide

23 , RowNewLine. TmaxInstance flagstimeout. msg : message tperrno : tpurcode : User Code(tpreturn ) flags : pb_tpcall flag TPNOTRAN non transaction mode TPNOCHANGE TPNOBLOCK non Blocking Mode TPNOTIME Blocking timeout timeout : pb_tx_set_transaction_timeout Transaction Time- Out long ret string itype, idata, form[], odata[] string FileName = "c:\abc.bmp" if isnull(sle_1.text) or sle_1.text = '' then error processing end if itype = "FML~t~n" /*FILEupload FILENAM.*/ idata = "FILENAM~t + FileName + ~n form[1] = "~n" odata[1] = space(1024) ret = uo_tmax.pb_etpcall("imgsave", itype, idata, form[], odata[]) if ret < 0 then error processing end if Tmax 4GL Programming Guide

24 pb_tpfcall pb_tpfcall ( string svcname, string itype, string idata, string form[], ref string odata[], string ifilename, string fform[], ref string fodata[] ) returns integer pb_tpcall(). Tmax FILED form output fform fodata. TAB( ~t ) NewLine( ~n ) TAB NewLine odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. PowerBuilderImportString DataWindow TAB, RowNewLine. TAB NewLine FIELD_NAME1+ ~t + VALUE1+ ~n + & FIELD_NAME2+ ~t + VALUE2+ ~n + & ~n fodata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. Tmax 4GL Programming Guide

25 ... InputFile = c:\temp\fdata0.txt InputFile = FileOpen(InputFile, StreamMode!, Write!, LockReadWrite!, Replace!)... uo_tmax.f_fdata(dw_input, InputFile) if FileClose(InputFile) <> 1 then error processing end if... ret = uo_tmax.pb_tpfcall( FCALL, itype, input, form, output, inputfilename, fform, foutput) if ret = -1 then error processing end if... f_fdata Tmax 4GL Programming Guide

26 pb_tpacall pb_tpacall ( string svcname, string itype, string idata ) returns integer,. (pb_tpgetrply())pb_tpacall(). pb_tpacall(). pb_tpgetrply(). TAB( ~t ) NewLine( ~n ) TAB NewLine string input, itype, form[], output[] int length, cd, ret length = len(before.text) itype = "STRUCT~tkstrdata~n" input = string(length) + ~t + before.text + ~n form[1] = "len~n" + "sdata~n" + ~n form[2] = ~n output[1] = space(1024) cd = uo_tmax.pb_tpacall("sync", itype, input) if cd < 0 then error processing end if ret = uo_tmax.pb_tpgetrply(cd, form, output) if ret < 0 then error processing end if (pb_tpgetrply() ). Tmax 4GL Programming Guide

27 pb_tpgetrply, pb_tpcancel, pb_tpcall Tmax 4GL Programming Guide

28 pb_tpgetrply pb_tpgetrply ( integer cd, ref string form[], ref string odata[] ) returns integer pb_tpgetrply()pb_tpacall(). pb_tpgetrply().. tperrnotpetime. cdpb_tpacall(),. form outputpb_tpcall(). pb_tpacall(). form : odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB, RowNewLine. string input, itype, form[], output[] int length, cd, ret length = len(before.text) itype = "STRUCT~tkstrdata~n" input = string(length) + ~t + before.text + ~n form[1] = "len~n" + "sdata~n" + ~n form[2] = ~n output[1] = space(1024) cd = uo_tmax.pb_tpacall("sync", itype, input) if cd < 0 then error processing end if ret = uo_tmax.pb_tpgetrply(cd, form, output) if ret < 0 then error processing Tmax 4GL Programming Guide

29 end if Integer. -1 tperrnoerror, msg. Tmax Reference Manual tpgetrply(). f_form, pb_tpacall, pb_tpcancel, pb_tpcall Tmax 4GL Programming Guide

30 pb_tpcancel pb_tpcancel ( integer cd ) returns integer pb_tpcancel()pb_tpacall().. cd. commit rollback. pb_tpacall() string input, itype, form[], output[] int length, cd, ret length = len(before.text) itype = "STRUCT~tkstrdata~n" input = string(length) + ~t + before.text + ~n form[1] = "len~n" + "sdata~n" + ~n form[2] = ~n output[1] = space(1024) cd = uo_tmax.pb_tpacall("sync", itype, input) if cd < 0 then error processing end if ret = uo_tmax.pb_tpcancel(cd) if ret < 0 then error processing end if Integer. -1 tperrnoerror, msg. Tmax Reference Manual tpcancel(). pb_tpacall, pb_tpgetrply Tmax 4GL Programming Guide

31 pb_tpcallw pb_tpcallw ( string svcname, powerobject iobject[], powerobject oobject[] ) returns integer iobject PowerObject Service, oobject PowerObject. iobject PowerObject oobject Power Object FIELD. input Object : Control Control.tag FIELD Field. DataWindow, DataWindowChild, : column FIELD FIELD. Row data. DataStore SingleLineEdit, MultiLineEdit : Control.Tag FIELD Field. Control.Textdata. StaticText, EditMask : Control.Tag FIELD Field. Control.Textdata. ListBox Control.Tag FIELD Field. data. DropDownListBox Control.Tag FIELD Field. data. CheckBox Control.Tag FIELD Field. Check data. RadioButton Control.Tag FIELD Field. Check data. outputobject input. ListBoxDropDownListBox data. uo_tmaxinstance Append TRUE, output DataWindow, DataWindow. FALSE DelBuf TRUE, inputdatawindow, DataWindow Delete Buffer (Primary Buffer ). Tmax 4GL Programming Guide

32 TRUE DataOnFail TRUE,. FALSE AppData pb_tpcall() input. DateFmt, Date/Time/DateTime, String TimeFmt, Format. DateTimeFmt pb_tpcallw pb_tpcall, pb_tpcall. long ret windowobject indata[], outdata[] indata[1] = dw_1 indata[2] = sle_input outdata[1] = dw_2 uo_tmax.flags = 0; ret = uo_tmax.pb_tpcallw ("SVC1", indata, outdata) if ret < 0 then error processing end if pb_tpcall, tuxcall Tmax 4GL Programming Guide

33 pb_tpconnect pb_tpconnect ( string svcname, string itype, string idata, long arg_flag ) returns integer pb_tpconnect(). pb_tpsend(), pb_tprecv(). Tmax Reference Manualtpconnect(). TAB( ~t ) NewLine( ~n ) TAB NewLine. TPNOTRAN : pb_tpconnect() svc, svc. svc, pb_tpconnect() TPNOTRAN. pb_tpconnect(), TPNOTRAN (timeout). TPNOTRAN,. TPSENDONLY :,,.,. TPSENDONLY TPRECVONLY. TPRECVONLY :,,.,. TPSENDONLY TPRECVONLY. Tmax 4GL Programming Guide

34 TPNOTIME : TPNOTIME. pb_tpconnect() Blocking timeout. TPSIGSTRT : (signal)..,, tperrno TPGOTSIG. int ret, cd string itype, otype, idata, form[], odata[] itype = "STRING~t~n" otype = "STRING~t~n" idata = string(len(before.text)) + ~t + before.text + ~n odata[1] = space(1024) cd = uo_tmax.pb_tpconnect("conv", itype, idata, uo_tmax.tprecvonly) if cd < 0 then error processing end if ret = uo_tmax.pb_tprecv(cd, form, odata, uo_tmax.tpflags) if ret < 0 then if uo_tmax.revent <> uo_tmax.tpev_sendonly or & uo_tmax.revent = uo_tmax.tpev_svcsucc then error processing end if end if Integer. -1 tperrnoerror.. Tmax Reference Manualtpconnect(). pb_tpsend, tp_tprecv, pb_tpdiscon Tmax 4GL Programming Guide

35 pb_tpsend pb_tpsend ( integer cd, string itype, string idata, long arg_flag ) returns integer pb_tpsend().. Tmax Reference Manualtpsend(). pb_tpconnect() TAB( ~t ) NewLine( ~n ) TAB NewLine. TPRECVONLY : TPRECVONLY,., pb_tpsend(). pb_tprecv(), TPEV_SENDONLY. pb_tprecv(). TPNOBLOCK : (, ). TPNOBLOCK pb_tpsend(), ( ). TPNOTIME : TPNOTIME. pb_tpconnect(). Tmax 4GL Programming Guide

36 TPSIGSTRT : (signal)..,, tperrno TPGOTSIG. int ret, cd string itype, otype, idata, form[], odata[] itype = "STRING~t~n" otype = "STRING~t~n" idata = string(len(before.text)) + ~t + before.text + ~n odata[1] = space(1024) cd = uo_tmax.pb_tpconnect("conv", itype, idata, uo_tmax.tpsendonly) if cd < 0 then error processing end if ret = uo_tmax.pb_tpsend(cd, itype, idata, uo_tmax.tprecvonly) if ret < 0 then error processing endif,. -1,. tperrnopb_tpeevent( 22) revent pb_tpdiscon().. TPFAILtpreturn. reventpb_tpev_svcsucc, PB_TPEV_SVCFAIL tpurcoode. -1 tperrnoerror (PB_TPEEVENT Tmax 4GL Programming Guide

37 ). Tmax Reference Manualtpsend(). pb_tpconnect, tp_tprecv, pb_tpdiscon Tmax 4GL Programming Guide

38 pb_tprecv pb_tprecv ( integer cd, ref string form[], ref string odata[], long arg_flag ) returns integer pb_tprecv().. Tmax Reference Manualtprecv(). pb_tpconnect() odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. PowerBuilderImportString DataWindow TAB, RowNewLine.. TPNOBLOCK :., return.. TPNOTIME :. pb_tprecv() Blocking timeout. TPSIGRSTRT : (signal)..,, tperrno TPGOTSIG. int ret, cd string itype, otype, idata, form[], odata[] itype = "STRING~t~n" otype = "STRING~t~n" Tmax 4GL Programming Guide

39 idata = string(len(before.text)) + ~t + before.text + ~n odata[1] = space(1024) cd = uo_tmax.pb_tpconnect("conv", itype, idata, uo_tmax.tpsendonly) if cd < 0 then error processing end if ret = uo_tmax.pb_tprecv(cd, form, odata, uo_tmax.tpnoflags) if ret < 0 then if uo_tmax.revent <> uo_tmax.tpev_sendonly or & uo_tmax.revent = uo_tmax.tpev_svcsucc then error processing end if end if,. -1,. tperrnopb_tpeevent( 22) revent pb_tpdiscon()... TPFAILtpreturn SUCCESS ( ) reventpb_tpev_svcsucc, PB_TPEV_SVCFAIL tpurcoode. -1 tperrnoerror (PB_TPEEVENT ). Tmax Reference Manualtprecv(). Tmax 4GL Programming Guide

40 pb_tpconnect, tp_tprecv, pb_tpdiscon Tmax 4GL Programming Guide

41 pb_tpdiscon pb_tpdiscon ( integer cd ) returns integer pb_tpdiscon(), TPEV_DISCONIMM.. Tmax Reference Manualtpdiscon(). pb_tpconnect() int ret, cd string itype, otype, idata, form[], odata[] itype = "STRING~t~n" otype = "STRING~t~n" idata = string(len(before.text)) + ~t + before.text + ~n odata[1] = space(1024) cd = uo_tmax.pb_tpconnect("conv", itype, idata, uo_tmax.tpsendonly) if cd < 0 then error processing end if ret = uo_tmax.pb_tpdiscon(cd) if ret < 0 then error processing end if Integer. -1 tperrnoerror. Tmax Reference Manualtpdiscon(). pb_tpconnect, tp_tpsend, pb_tprecv Tmax 4GL Programming Guide

42 pb_isblocked pb_isblocked ( ) returns integer Blocking. Blocking Service. Service Service. Service button ( button ) Service. Service button. ret = uo_tmax.pb_isblocked() if ret = 0 then MessageBox("pb_isBlocked", "NO BLOCK " + string(uo_tmax.tperrno)) else MessageBox("pb_isBlocked", "BLOCKING") end if Integer. Blocking 1return. IsBlocked Tmax 4GL Programming Guide

43 pb_tpbroadcast pb_tpbroadcast ( string nodename, string usrname, string cltname, string data ) returns integer Client Message. nodename : Message. usrname : Message. pb_tpstart() usrname Message. cltname : Message. pb_tpstart() cltname Message. idata : TAB NewLine nodename, usrname, cltname. (wildcards). usrnamecltname?* nodename *. NULL,. Tmax Reference Manualtpbroadcast(). string nodename, usrname, cltname, data int ret. nodename = tmax usrname = * cltname = * data = sle_input.text ret = uo_tmax.pb_tpbroadcast(nodename, usrname, cltname, data) if ret < 0 then error processing end if Tmax Reference Manualtpbroadcast(). Tmax 4GL Programming Guide

44 - Tmax 4GL Programming Guide

45 pb_tpsetunsol pb_tpsetunsol ( unsignedinteger hwnd, string ename, unsignedinteger mid, long arg_flags ) returns integer. pb_getunsold(). hwnd : ename : tppost. mid : arg_flags :. TPBROADCAST, TPSENDTOCLI. pb_tpsetunsol(), pb_getunsold() u_tmaxinstance flagstpunsol_hndpb_tpstart(). uo_tmax.flags = uo_tmax.tpunsol_hnd ret = uo_tmax.pb_tpsetunsol ( HANDLE(this),, 1025, uo_tmax.tpbroadcast ) if ret = -1 then error processing end if unsoldata = space(1024) ret = uo_tmax.pb_getunsold(unsoldata, rlen, 1025) if ret < 0 then error processing end if TPEINVAL :. (16). pb_getunsold Tmax 4GL Programming Guide

46 pb_getunsold pb_getunsold ( ref string odata, integer len, unsignedinteger mid ) returns integer pb_tpsetunsol() pb_getunsold() odata :. len : mid : pb_tpsetunsol(), pb_getunsold() u_tmaxinstance flagstpunsol_hndpb_tpstart(). uo_tmax.flags = uo_tmax.tpunsol_hnd ret = uo_tmax.pb_tpsetunsol ( HANDLE(this),, 1025, uo_tmax.tpbroadcast ) if ret = -1 then error processing end if unsoldata = space(1024) ret = uo_tmax.pb_getunsold(unsoldata, rlen, 1025) if ret < 0 then error processing end if TPEINVAL : rcvbufnull mid 0. TPEITYPE :. TPEOTYPE :. TPEMATCH : mid. Tmax 4GL Programming Guide

47 pb_tpsetunsol Tmax 4GL Programming Guide

48 pb_tpget argument argument argumentsize. char * long addresspb.dll pb.dll string argument input. buf : long. loc : pb.dll loc. size :. TPEINVAL : rcvbufnull mid 0. TPEITYPE TPEOTYPE TPEMATCH pb_tpput Tmax 4GL Programming Guide

49 pb_tpgetunsol pb_tpgetunsol ( integer types, string form[], ref string odata[], integer arg_flags ) returns integer. pb_tpsetunsol() blocking. Tmax Reference Manualtpgetunsol(). types :. TPBROADCAST, TPSENDTOCLI. form : form. odata :. arg_flags : TPBLOCK pb_tpgetunsol(). TPNOTIME pb_tpgetunsol(). string form[], tmp[] tmp[1] = space(30) ret = uo_tmax.pb_tpgetunsol(uo_tmax.tpbroadcast, form[], tmp[], uo_tmax.tpblock) if ret < 0 then error processing end if TPEINVAL : rcvbufnull mid 0. TPEITYPE TPEOTYPE TPEMATCH pb_tpsetunsol, pb_getunsold Tmax 4GL Programming Guide

50 pb_tpput argument argument argument size. buf : long. loc :. size :. TPEINVAL : rcvbufnull mid 0. TPEITYPE TPEOTYPE TPEMATCH pb_tpget Tmax 4GL Programming Guide

51 f_data f_data ( {DataWindow DataWindowChild Datastore} ds_in ) returns string data. DataWindow( DataWindowChild, DataStore) Column datatab( ~t ), Column -Data NewLine( ~n ). Stringpb_tpcall input. ds_in : PowerBuilder Object (DataWindow, DataWindowChild, DataStore ) DataWindow( DataWindowChild, DataStore)data Row. string itype, input, form[], output[] itype = "STRING~t~n" input = uo_tmax.f_data(dw_input) + & ~n ret = uo_tmax.pb_tpcall("toupper", itype, input, form[], output[]) if ret < 0 then error processing end if String. DataWindow( DataWindowChild, DataStore) column data TAB( ~t )NewLine( ~n ). f_datadel, f_fdatadel, pb_tpcall, pb_tpacall, pb_tpconnect Tmax 4GL Programming Guide

52 f_datadel f_datadel ( {DataWindow DataWindowChild Datastore} ds_in ) returns string data. DataWindow( DataWindowChild, DataStore) Column datatab( ~t ), Column -Data NewLine( ~n ). Stringpb_tpcall input. ds_in : PowerBuilder Object (DataWindow, DataWindowChild, DataStore ) DeleteRow DeletedBufferdata : 1. DataWindow Allow Update ( Rows Menu Update Properties... Menu ) check. 2. ImportString ResetUpdate DeleteRow DeleteBuffer Row. string itype, input, form[], output[] itype = "STRING~t~n" input = uo_tmax.f_datadel(dw_input) + & ~n ret = uo_tmax.pb_tpcall("toupper", itype, input, form[], output[]) if ret < 0 then error processing end if String. DataWindow( DataWindowChild, DataStore)DeletedBuffer data TAB( ~t )NewLine( ~n ). f_fdata, f_fdatadel, pb_tpcall, pb_tpacall, pb_tpconnect Tmax 4GL Programming Guide

53 f_fdata f_fdata ( {Datastore DataWindow DataWindowChild} ds_in, integer filehandle ) returns integer Data. DataWindow( DataWindowChild, DataStore) RowColumn dataf_data format File Handle write., Column datatab( ~t ), Column -Data NewLine( ~n ). ds_in : PowerBuilder Object (DataWindow, DataWindowChild, DataStore ) filehandle : Service Data Field pb_tpfcall 4. DataWindow( DataWindowChild, DataStore)data Row.... InputFile = c:\temp\fdata0.txt InputFile = FileOpen(InputFile, StreamMode!, Write!, LockReadWrite!, Replace!)... uo_tmax.f_fdata(dw_input, InputFile) if FileClose(InputFile) <> 1 then error processing end if... if uo_tmax.tp_fcall(input, form, output, inputfilename, fform, foutput) = -1 then error processing end if... Integer File. f_data, f_datadel, f_fdatadel Tmax 4GL Programming Guide

54 f_fdatadel f_fdatadel ( {Datastore DataWindow DataWindowChild} ds_in, integer filehandle ) returns integer Data. DataWindow( DataWindowChild, DataStore) RowColumn dataf_data format File Handle write. ds_in : PowerBuilder Object (DataWindow, DataWindowChild, DataStore ) filehandle : DeleteRow DeletedBufferdata : 1. DataWindow Allow Update ( Rows Menu UpdateProperties... Menu ) check. 2. ImportString ResetUpdate DeleteRow DeleteBuffer Row. DataWindow( DataWindowChild, DataStore)dataDelete Buffer Row. f_fdata. - Integer File. f_data, f_datadel, f_fdata Tmax 4GL Programming Guide

55 f_form f_form ( {Datastore DataWindow DataWindowChild} ds_in) returns string form. DataWindow( DataWindowChild, DataStore) Column pb_tpcall4 String., column NewLine( ~n ) NewLine( ~n ). ds_in : PowerBuilder Object (DataWindow, DataWindowChild, DataStore ) string itype, input, form[], output[] itype = "STRING~t~n" input = uo_tmax.f_data(dw_input) + & ~n form[1] = uo_tmax.f_form(dw_input) ret = uo_tmax.pb_tpcall("toupper", itype, input, form[], output[]) if ret < 0 then error processing end if string. DataWindow(DataWindowChild, DataStore)Column NewLine( ~n ). pb_tpcall, pb_tpgetrply, pb_tprecv, pb_tpconv Tmax 4GL Programming Guide

56 f_getdata f_getdata ( string form, string odata, integer arg_row, string arg_col_name ) returns string form outputarg_row arg_col_name return. form : odata STRUCT FIELD KEY Field., Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB, RowNewLine. arg_row : arg_col_name : string itype, input, form[], output[] itype = "STRING~t~n" input = uo_tmax.f_data(dw_input) + & ~n form[1] = uo_tmax.f_form(dw_input) ret = uo_tmax.pb_tpcall("toupper", itype, input, form[], output[]) if ret < 0 then error processing end if string.. - Tmax 4GL Programming Guide

57 pb_tx_begin pb_tx_begin ( ) returns integer., pb_tx_commit() pb_tx_rollback(). if _is_tx <> true then ret = uo_tmax.pb_tx_begin() if ret < 0 then error processing end if _is_tx = true end If Tmax Reference Manualtx_begin(). pb_tx_commit, pb_tx_rollback Tmax 4GL Programming Guide

58 pb_tx_commit pb_tx_commit ( ) returns integer commit. if _is_tx <> true then end if ret = uo_tmax.pb_tx_commit() if ret < 0 then error processing end If _is_tx = false Tmax Reference Manualtx_commit(). pb_tx_begin, pb_tx_rollback Tmax 4GL Programming Guide

59 pb_tx_rollback pb_tx_rollback ( ) returns integer rollback. ret = uo_tmax.pb_tpcall("insert", itype, input, form[], output[]) if ret < 0 then if _is_tx = true then ret = uo_tmax.pb_tx_rollback() if ret < 0 then error processing end if _is_tx = false end if error processing end if Tmax Reference Manualtx_rollback(). pb_tx_begin, pb_tx_commit Tmax 4GL Programming Guide

60 pb_tx_info pb_tx_info ( ) returns integer. xid u_tmaxdata, when_return, transaction_control, transaction_timeout transaction_stat. if _is_tx <> true then ret = uo_tmax.pb_tx_begin() if ret < 0 then error processing end if _is_tx = true end If if ret = uo_tmax.pb_tx_info() if ret < 0 then error processing end if Transaction mode 1 0. tperrnoerror. 1 TmaxInstance. data : ( :CLH :.) when_return : commit_return (pb_tx_set_commit_return() ) transaction_control : transaction control (pb_tx_set_transaction_control().) transaction_timeout : (pb_tx_set_transaction_timeout().) transaction_stat : Tmax Reference Manualtx_info(). pb_tx_begin, pb_tx_commit, pb_tx_rollback Tmax 4GL Programming Guide

61 pb_tx_set_commit_return pb_tx_set_commit_return ( long w_return ) returns integer when_return Global Transactioncommit. w_return :. TX_COMMIT_DECISION_LOGGED flagpb_tx_commit() two-phase commit protocol return.. TX_COMMIT_COMPLETED flagpb_tx_commit() two-phase commit protocol return. if ret = uo_tmax.pb_tx_set_commit_return(uo_tmax.tx_commit_completed) if ret < 0 then error processing end if if _is_tx <> true then ret = uo_tmax.pb_tx_begin() if ret < 0 then error processing end if _is_tx = true end If Tmax Reference Manualtx_set_commit_return(). pb_tx_info Tmax 4GL Programming Guide

62 pb_tx_set_transaction_control pb_tx_set_transaction_control ( long control ) returns integer control pb_tx_commit() pb_tx_rollback() transaction. control TX_UNCHAINED. control :. TX_UNCHAINED transaction. pb_tx_begin() transaction. TX_CHAINED pb_tx_commit() pb_tx_rollback() transaction. if ret = uo_tmax.pb_tx_set_transaction_control(uo_tmax.tx_chained) if ret < 0 then error processing end if if _is_tx <> true then ret = uo_tmax.pb_tx_begin() if ret < 0 then error processing end if _is_tx = true end If Tmax Reference Manual tx_set_transaction_control(). pb_tx_info Tmax 4GL Programming Guide

63 pb_tx_set_transaction_timeout pb_tx_set_transaction_timeout ( long timeout ) returns integer transactiontimeout. timeout :. if ret = uo_tmax.pb_tx_set_transaction_timeout(5) if ret < 0 then error processing end if if _is_tx <> true then ret = uo_tmax.pb_tx_begin() if ret < 0 then error processing end if _is_tx = true end If Tmax Reference Manual tx_set_transaction_timeout(). pb_tx_info Tmax 4GL Programming Guide

64 tp_init tp_init ( ) returns integer Tmax. pb_tpstart(). long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax uo_tmax.usr_name = 'tmaxclient' uo_tmax.clt_name = 'cilent01' uo_tmax.dom_pwd = 'tmax' uo_tmax.usr_pwd = 'client01' uo_tmax.flags = uo_tmax.tpunsol_ign ret = uo_tmax.tp_initt() if ret < 0 then error processing end if pb_tpstart Tmax 4GL Programming Guide

65 tuxreadenv tuxreadenv ( string env_file, string section ) returns integer long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax ret = uo_tmax.tuxreadenv(./tmax.env, "TMAX") if ret < 0 then error processing end if Integer. -1 tperrnoerror. Tmax 4GL Programming Guide

66 tp_term tp_term ( ) returns integer long ret u_tmax uo_tmax uo_tmax = CREATE u_tmax ret = uo_tmax.tp_term() if ret < 0 then error processing end if Integer. -1 tperrnoerror. Tmax 4GL Programming Guide

67 tp_call tp_call ( string idata, string form[], ref string odata[] ) returns integer idata Service, form column dataodata. tp_call() Tmax FILED(FDL) idata : service data. TAB NewLine form : odata Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB, RowNewLine. TmaxInstance flagstimeout. msg : message tperrno : tpurcode : User Code(tpreturn ) flags : pb_tpcall flag TPNOTRAN non transaction mode TPNOCHANGE TPNOBLOCK non Blocking Mode TPNOTIME Blocking timeout timeout : pb_tx_set_transaction_timeout Blocking timeout input = SRVCNM + ~t + TOUPPER + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(1024) Tmax 4GL Programming Guide

68 ret = uo_tmax. tp_call(input, form, output) if ret < 0 then error processing end if Integer. -1 tperrnoerror, msg. pb_tpcall, f_data, f_datadel, f_form, tuxcall Tmax 4GL Programming Guide

69 tp_fcall tp_fcall ( string idata, string form[], ref string odata[], string ifilename, string fform[], ref string foutdata[] ) returns integer tp_call(). Tmax FILED(FDL) form odata fform foutdata. service data. TAB NewLine odata Field Newline Newline form. Form Newline form. PowerBuilderImportString DataWindow TAB, RowNewLine. TAB NewLine fodata Field Newline Newline form. Form Newline form.... InputFile = c:\temp\fdata0.txt InputFile = FileOpen(InputFile, StreamMode!, Write!, LockReadWrite!, Replace!)... uo_tmax.f_fdata(dw_input, InputFile) if FileClose(InputFile) <> 1 then error processing end if... ret = uo_tmax.tp_fcall(input, form, output, inputfilename, fform, foutput) if ret = -1 then error processing Tmax 4GL Programming Guide

70 end if... Integer. -1 tperrnoerror, msg. pb_tpfcall, f_data, f_datadel, f_form Tmax 4GL Programming Guide

71 tp_acall tp_acall ( ref string idata ) returns integer. (tp_getrply() ).,. tp_acall() Tmax FIELD. service data. TAB NewLine string input, form[], odata[] int cd, ret input = SRVCNM + ~t + TOUPPER + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(1024) cd = uo_tmax.tp_acall(input) if cd < 0 then error processing end if ret = uo_tmax.tp_getrply(cd, form, output) if ret < 0 then error processing end if (tp_getrply() ). pb_tpacall, tp_getrply Tmax 4GL Programming Guide

72 tp_getrply tp_getrply ( integer cd, ref string form[], ref string odata[] ) returns integer tp_getrply()tp_acall(). cdtp_acall(),. tp_getrply()tmax FIELD. form outputtp_call(). tp_acall(). form : odata Field Newline Newline form. Form Newline form. odata : PowerBuilderImportString DataWindow TAB, RowNewLine. string input, form[], odata[] int cd, ret input = SRVCNM + ~t + TOUPPER + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(1024) cd = uo_tmax.tp_acall(input) if cd < 0 then error processing end if ret = uo_tmax.tp_getrply(cd, form, output) if ret < 0 then error processing end if Tmax 4GL Programming Guide

73 Integer. -1 tperrnoerror, msg. pb_tpgetrply, tp_acall Tmax 4GL Programming Guide

74 tp_cancel tp_cancel ( integer cd ) returns integer tp_cancel()tp_acall().. commit rollback. tp_acall() string input, form[], odata[] int cd, ret input = SRVCNM + ~t + TOUPPER + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(1024) cd = uo_tmax.tp_acall(input) if cd < 0 then error processing end if ret = uo_tmax.pb_tpcancel(cd) if ret < 0 then error processing end if Integer. -1 tperrnoerror. tp_acall, tp_getrply Tmax 4GL Programming Guide

75 tuxcall tuxcall ( string svcname, powerobject sobject[], ref powerobject robject[] ) returns integer sobject PowerObject Service, robject PowerObject. tuxcall() Tmax FIELD. sobject Object. DataWindow, DataWindowChild, DataStore SingleLineEdit, MultiLineEdit StaticText, EditMask ListBox DropDownListBox CheckBox RadioButton : column FIELD FIELD. Row data. : Control.Tag FIELD Field. Control.Textdata. : Control.Tag FIELD Field. Control.Textdata. Control.Tag FIELD Field. data. Control.Tag FIELD Field. data. Control.Tag FIELD Field. Check data. Control.Tag FIELD Field. Check data. robjectobject input. ListBoxDropDownListBox data. u_tmaxinstance. dwappend : TRUE, robject DataWindow, DataWindow. FALSE dwdelbuf : TRUE, sobject DataWindow, DataWindowDelete Buffer (Primary Buffer ). TRUE DataOnFail : TRUE,. FALSE AuxData Tmax 4GL Programming Guide

76 DateFmt, TimeFmt, DateTimeFmt tp_call()input. Date/Time/DateTime, String Format. *tuxcall() tp_call(), tp_call(). long ret windowobject indata[], outdata[] indata[1] = dw_1 indata[2] = sle_input outdata[1] = dw_2 uo_tmax.flags = 0; ret = uo_tmax.tuxcall("svc1", indata, outdata) if ret < 0 then error processing end if Integer. -1 tperrnoerror, msg. tp_call, pb_tpcallw Tmax 4GL Programming Guide

77 tp_connect tp_connect ( string idata, long arg_flag ) returns integer tp_connect(). tp_send(),tp_recv(). tp_connect() Tmax FIELD. service data. TAB NewLine. TPNOTRAN : pb_tpconnect() svc, svc. svc, pb_tpconnect() TPNOTRAN. pb_tpconnect(), TPNOTRAN (timeout). TPNOTRAN,. TPSENDONLY :,,.,. TPSENDONLY TPRECVONLY. TPRECVONLY :,,.,. TPSENDONLY TPRECVONLY. TPNOTIME : TPNOTIME. pb_tpconnect(). Tmax 4GL Programming Guide

78 TPSIGSTRT : (signal)..,, tperrno TPGOTSIG. int ret, cd string idata idata = SRVCNM + ~t + CONV + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n cd = uo_tmax.tp_connect(idata, uo_tmax.tprecvonly) if cd < 0 then error processing end if Integer. -1 tperrnoerror.. tp_send, tp_recv, tp_conv, tp_discon Tmax 4GL Programming Guide

79 tp_conv tp_conv ( integer cd, string idata, ref string form[], ref string odata[], long arg_flag ) returns integer cd,. tp_conv() Tmax FIELD. tp_connect() service data. TAB NewLine odata Field Newline Newline form. Form Newline form. PowerBuilderImportString DataWindow TAB, RowNewLine. pb_tpsend(), pb_tprecv() flag. int ret, cd string idata idata = SRVCNM + ~t + CONV + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n form[1] = "OUTPUT~n~n" form[2] = "~n" output[1] = space(1024) cd = uo_tmax.tp_connect(idata, uo_tmax.tprecvonly) if cd < 0 then error processing end if ret = uo_tmax.tp_conv(cd, idata, form, output, uo_tmax.tpnoflags) if ret < 0 then if uo_tmax.revent <> uo_tmax.tpev_sendonly or & uo_tmax.revent = uo_tmax.tpev_svcsucc then error processing Tmax 4GL Programming Guide

80 end if end if,. -1,. tperrnopb_tpeevent( 22) revent pb_tpdiscon()... TPFAILtpreturn SUCCESS ( ) reventpb_tpev_svcsucc, PB_TPEV_SVCFAIL tpurcoode. -1 tperrnoerror (PB_TPEEVENT ). Tmax Reference Manualtpsend(). tp_connect, tp_discon, tp_send, tp_recv Tmax 4GL Programming Guide

81 tp_send tp_send ( integer cd, string idata, long arg_flag ) returns integer tp_send().. tp_send() Tmax FILED. pb_tpconnect() service data. TAB NewLine. TPRECVONLY : TPRECVONLY,., pb_tpsend(). pb_tprecv(), TPEV_SENDONLY. pb_tprecv(). TPNOBLOCK : (, ). TPNOBLOCK pb_tpsend(), ( ). TPNOTIME : TPNOTIME. pb_tpconnect(). TPSIGSTRT : (signal)..,, tperrno TPGOTSIG. Tmax 4GL Programming Guide

82 int ret, cd string itype, otype, idata, form[], odata[] idata = SRVCNM + ~t + CONV + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n cd = uo_tmax.tp_connect(idata, uo_tmax.tpsendonly) if cd < 0 then error processing end if ret = uo_tmax.tp_send(idata, uo_tmax.tprecvonly) if ret < 0 then error processing end if,. -1,. tperrnopb_tpeevent( 22) revent pb_tpdiscon().. TPFAILtpreturn. reventpb_tpev_svcsucc, PB_TPEV_SVCFAIL tpurcoode. -1 tperrnoerror (PB_TPEEVENT ). tp_connect, tp_discon, tp_recv, tp_conv Tmax 4GL Programming Guide

83 tp_recv tp_recv ( integer cd, ref string form[], ref string odata[], long arg_flag ) returns integer tp_recv().. tp_recv() Tmax FIELD. pb_tpconnect() odata Field Newline Newline form. Form Newline form. PowerBuilderImportString DataWindow TAB, RowNewLine.. TPNOBLOCK :., return.. TPNOTIME :. pb_tprecv(). TPSIGRSTRT : (signal)..,, tperrno TPGOTSIG. int ret, cd string itype, otype, idata, form[], odata[] idata = SRVCNM + ~t + CONV + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n Tmax 4GL Programming Guide

84 cd = uo_tmax.tp_connect(idata, uo_tmax.tprecvonly) if cd < 0 then error processing end if ret = uo_tmax.tp_recv(cd, form, odata, uo_tmax.tpnoflags) if ret < 0 then if uo_tmax.revent <> uo_tmax.tpev_sendonly or & uo_tmax.revent = uo_tmax.tpev_svcsucc then error processing end if end if,. -1,. tperrnopb_tpeevent( 22) revent pb_tpdiscon()... TPFAILtpreturn SUCCESS ( ) reventpb_tpev_svcsucc, PB_TPEV_SVCFAIL tpurcoode. -1 tperrnoerror (PB_TPEEVENT ). tp_connect, tp_discon, tp_send, tp_conv Tmax 4GL Programming Guide

85 tp_discon tp_discon ( integer cd ) returns integer tp_discon(), TPEV_DISCONIMM. tpreturn, client., abort. tp_connect() int ret, cd string idata idata = SRVCNM + ~t + CONV + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & FIELD_NAME2 + ~t + VALUE2 + ~n + & ~n cd = uo_tmax.tp_connect(idata, uo_tmax.tprecvonly) if cd < 0 then error processing end if ret = uo_tmax.tp_discon(cd) if ret < 0 then error processing end if Integer. -1 tperrnoerror. pb_tpconnect, tp_tpsend, pb_tprecv Tmax 4GL Programming Guide

86 isblocked isblocked ( ) returns integer Blocking. Blocking Service. Service Service. Service button ( button ) Service. Service button. ret = uo_tmax.isblocked() if ret = 0 then MessageBox("pb_isBlocked", "NO BLOCK " + string(uo_tmax.tperrno)) else MessageBox("pb_isBlocked", "BLOCKING") end if Integer. Blocking 1return. pb_isblocked Tmax 4GL Programming Guide

87 tp_broadcast tp_broadcast ( string nodename, string usrname, string cltname, string idata ) returns integer Client Message. nodename : Message. usrname : Message. pb_tpstart() usrname Message. cltname : Message. pb_tpstart() cltname Message. idata : service data. TAB NewLine nodename, usrname, cltname. (wildcards). usrnamecltname?* nodename *. NULL,. string nodename, usrname, cltname, data int ret. nodename = tmax usrname = * cltname = * data = SRVCNM + ~t + BROAD + ~n + & FIELD_NAME1 + ~t + VALUE1 + ~n + & ~n ret = uo_tmax.tp_broadcast(nodename, usrname, cltname, data) if ret < 0 then error processing end if Tmax 4GL Programming Guide

88 pb_tpbroadcast Tmax 4GL Programming Guide

89 tp_subscribe tp_subscribe ( unsignedinteger hwnd, string event_name, unsignedinteger message_id ) returns integer tppost(). event_name tppost() hwnd message_id., Message.WordParm ID. get_evtname() get_data() ID. tp_unsubscribe(). hwnd : event_name : message_id : ID - tp_unsubscribe Tmax 4GL Programming Guide

90 tp_unsubscribe tp_unsubscribe ( unsignedinteger hwnd ) returns integer tp_subscribe(), tp_setunsol() (hwnd) Message. hwnd : - tp_subscribe Tmax 4GL Programming Guide

91 tp_begin tp_begin ( unsignedlong timeout, long arg_flags ) returns integer., tp_commit() tp_abort(). timeout : transaction.( ) transaction timeout transactionabort. arg_flags :. if _is_tx <> true then ret = uo_tmax.tp_begin(10, 0) if ret < 0 then error processing end if _is_tx = true end If tp_commit, tp_abort Tmax 4GL Programming Guide

92 tp_commit tp_commit ( long arg_flags ) returns integer commit. arg_flags :. if _is_tx <> true then end if ret = uo_tmax.tp_commit(0) if ret < 0 then error processing end If _is_tx = false tp_begin, tp_abort Tmax 4GL Programming Guide

93 tp_abort tp_abort ( long arg_flags ) returns integer abort. arg_flags :. ret = uo_tmax.pb_tpcall("insert", itype, input, form[], output[]) if ret < 0 then if _is_tx = true then ret = uo_tmax.tp_abort(0) if ret < 0 then error processing end if _is_tx = false end if error processing end if. tp_begin, tp_commit Tmax 4GL Programming Guide

94 3. Power Builder Sample,,,,,,,. 8 singleline editor1, 6., 50.,,,. demo.pbl : client emp_c.pc : service (Oracle ) demo.f : Field Key Buffer emp_c.mk: Makefile tmconfig.m : Tmax - User Object : tmax.pbd - : FIELD KEY BUFFER fdlc fdl - : pb_tpcall() - :,,, - Tmax :,. - : FDLSELECT, FDLUPDATE, FDLDELETE, FDLINSERT - : SVRGROUP ( XA ) Tmax 4GL Programming Guide

95 < > < > Tmax 4GL Programming Guide

96 Global Variables u_tmax uo_tmax boolean btxrun, bconnect Window Fuctions tmaxconnect ( ) returns Boolean IF uo_tmax.pb_tpstart()<0 THEN st_err.text = (".\n tpstart() Failed: Error Code =" + string(uo_tmax.tperrno)) return FALSE END IF return TRUE inputcheck ( integer inputnum ) returns Boolean IF isnull( sle_empno.text ) OR sle_empno.text = "" THEN st_err.text = "." return FALSE END IF IF( inputnum = 1) THEN return TRUE IF isnull( sle_name.text ) OR sle_name.text = "" THEN goto errormsg IF isnull( sle_job.text ) OR sle_job.text = "" THEN goto errormsg IF isnull( sle_mgr.text ) OR sle_mgr.text = "" THEN goto errormsg IF (len(sle_date.text) <>8 ) THEN goto errormsg IF isnull( sle_sal.text ) OR sle_sal.text = "" THEN goto errormsg IF isnull( sle_comm.text ) OR sle_comm.text = "" THEN goto errormsg IF isnull( sle_dept.text ) OR sle_dept.text = "" THEN goto errormsg return TRUE errormsg: st_err.text = ", 8 (YYYYMMDD)." return FALSE clearwindow ( ) returns Boolean sle_empno.clear() sle_name.clear() sle_job.clear() sle_mgr.clear() sle_date.clear() sle_sal.clear() sle_comm.clear() sle_dept.clear() sle_empno.setfocus() Tmax 4GL Programming Guide

97 errorprocess ( string infomsg ) st_err.text = InfoMsg IF( btxrun = TRUE ) THEN uo_tmax.pb_tx_rollback() btxrun = FALSE END IF IF( bconnect = TRUE ) THEN uo_tmax.pb_tpend() bconnect = FALSE END IF successprocess ( string infomsg ) st_err.text = InfoMsg IF( btxrun = TRUE ) THEN uo_tmax.pb_tx_commit() btxrun = FALSE END IF IF( bconnect = TRUE ) THEN uo_tmax.pb_tpend() bconnect = FALSE END IF Open Script string FileName uo_tmax = CREATE u_tmax uo_tmax.flags = 0 FileName ="D:\PB\MyProgram\tmax.env" IF uo_tmax.pb_tmaxreadenv( FileName, "tmax1") <0 THEN messagebox( "Eviroment Error","Enviroment File Loading Failed : Error Code =" + string(uo_tmax.tperrno)) return END IF open(w_demo) Script string itype, idata, form[], odata[] IF(inputcheck(1) = FALSE) THEN return Tmax 4GL Programming Guide

98 itype = "FIELD~t~n" idata = "EMPNO"+"~t"+sle_empno.text+"~n" form[1] ="EMPNO~n" + & "ENAME~n" + & "JOB~n" + & "MGR~n" + & "DATE~n" + & "SAL~n" + & "COMM~n" + & "DEPTNO~n" + & "E_TYPE~nE_CODE~nE_MSG~nE_TMP~n~n" form[2] = "~n"//"e_type~ne_code~ne_msg~ne_tmp~n~n" odata[1] = space(1024) bconnect = tmaxconnect() IF bconnect = FALSE THEN errorprocess( ".") return END IF IF uo_tmax.pb_tpcall("fdlselect", itype, idata, form[], odata[]) <0 THEN errorprocess( uo_tmax.f_getdata(form[1], odata[1], 1, "E_MSG") ) return END IF dw_out.importstring(odata[1]) dw_out.visible = TRUE cb_back.visible = TRUE cb_sel.enabled = FALSE cb_udt.enabled = FALSE cb_del.enabled = FALSE cb_ins.enabled = FALSE cb_exit.enabled = FALSE successprocess( sle_empno.text + ".") Script string itype, idata, form[], odata[] IF(inputcheck(0) = FALSE) THEN return itype = "FIELD~t~n" idata = "EMPNO~t" +sle_empno.text+"~n" + & "ENAME~t"+sle_name.text+"~n" + & "JOB~t"+sle_job.text+"~n" + & "MGR~t"+sle_mgr.text+"~n" + & "DATE~t" +sle_date.text+"~n" + & Tmax 4GL Programming Guide

99 "SAL~t" +sle_sal.text+"~n" + & "COMM~t" +sle_comm.text+"~n" + & "DEPTNO~t" +sle_dept.text+"~n~n" form[1] = "E_TYPE~nE_CODE~nE_MSG~nE_TMP~n~n" form[2] = "~n" odata[1] = space(1024) bconnect = tmaxconnect() IF bconnect = FALSE THEN errorprocess( ".") return END IF IF btxrun = FALSE THEN IF uo_tmax.pb_tx_begin()<0 THEN errorprocess( "pb_tx_begin Error") return END IF btxrun = TRUE END IF IF uo_tmax.pb_tpcall("fdlupdate", itype, idata, form[], odata[])<0 THEN errorprocess( "Error:\n"+uo_tmax.f_getdata(form[1], odata[1], 1, "E_MSG") ) return END IF clearwindow() successprocess( sle_empno.text + "." ) Script int string ret itype, idata, form[], odata[] IF(inputcheck(1) = FALSE) THEN return itype = "FIELD~t~n" idata = "EMPNO"+"~t"+sle_empno.text+"~n~n" form[1] = "E_TYPE~nE_CODE~nE_MSG~nE_TMP~n~n" form[2] = "~n" odata[1] = space(1024); bconnect = tmaxconnect() IF bconnect = FALSE THEN errorprocess( ".") return END IF Tmax 4GL Programming Guide

100 IF btxrun = FALSE THEN IF uo_tmax.pb_tx_begin()<0 THEN errorprocess( "pb_tx_begin Error") return END IF btxrun = TRUE END IF IF uo_tmax.pb_tpcall("fdldelete", itype, idata, form[], odata[])<0 THEN errorprocess( uo_tmax.f_getdata(form[1], odata[1], 1, "E_MSG") ) return END IF successprocess( sle_empno.text + "." ) clearwindow() Script long string ret itype, idata, form[], odata[] IF(inputcheck(0) = FALSE) THEN return itype = "FIELD~t~n" idata = "EMPNO~t"+sle_empno.text+"~n" + & "ENAME~t"+sle_name.text+"~n" + & "JOB~t"+sle_job.text+"~n" + & "MGR~t"+sle_mgr.text+"~n" + & "DATE~t"+sle_date.text+"~n" + & "SAL~t"+sle_sal.text+"~n" + & "COMM~t"+sle_comm.text+"~n" + & "DEPTNO~t"+sle_dept.text+"~n" + & "~n" form[1] = "E_TYPE~nE_CODE~nE_MSG~nE_TMP~n~n" form[2] = "~n" odata[1] = space(1024); bconnect = tmaxconnect() IF bconnect = FALSE THEN errorprocess( ".") return END IF IF btxrun = FALSE THEN IF uo_tmax.pb_tx_begin()<0 THEN errorprocess( "pb_tx_begin Error") Tmax 4GL Programming Guide

101 return END IF btxrun = TRUE END IF IF uo_tmax.pb_tpcall("fdlinsert", itype, idata, form[], odata[])<0 THEN errorprocess( uo_tmax.f_getdata(form[1], odata[1], 1, "E_MSG") ) return END IF successprocess( sle_empno.text + "." ) clearwindow() Script close(w_demo) Script int i cb_sel.enabled = TRUE cb_udt.enabled = TRUE cb_del.enabled = TRUE cb_ins.enabled = TRUE cb_exit.enabled = TRUE FOR i=1 to (dw_out.rowcount()+2) dw_out.deleterow ( 1 ) NEXT clearwindow() dw_out.visible = FALSE cb_back.visible = FALSE Tmax 4GL Programming Guide

102 demo.f DataBase EMP Table EMPNO NUMBER NOT NULL P1 ENAME VARCHAR(16) JOB VARCHAR(16) MGR NUMBER HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER Tmax 4GL Programming Guide

103 emp_c.pc Tmax 4GL Programming Guide

104 Tmax 4GL Programming Guide

105 Tmax 4GL Programming Guide

106 Tmax 4GL Programming Guide

107 Tmax 4GL Programming Guide

108 Tmax 4GL Programming Guide

109 } Tmax 4GL Programming Guide

110 emp_c.mk Tmax 4GL Programming Guide

111 tmconfig.m *DOMAIN dom1 *NODE tmax1 *SVRGROUP svg1 *SERVER emp_c *SERVICE FDLSELECT FDLUPDATE FDLDELETE FDLINSERT SHMKEY=70000, MAXUSER=200, MINCLH=1, MAXCLH=5, TPORTNO=8888, BLOCKTIME=200, TXTIME=200 TMAXDIR="/home/tmax", APPDIR="/home/tmax/appbin", PATHDIR="/home/tmax/path", TLOGDIR= "/home/tmax/log/tlog", SLOGDIR="/home/tmax/log/slog" ULOGDIR="/home/tmax/log/ulog" NODENAME=tmax1, DBNAME=ORACLE, OPENINFO="ORACLE_XA+Acc=P/scott/tiger+SesTm=60", TMSNAME = svg1_tms SVGNAME=svg1, MIN=1 SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c Tmax 4GL Programming Guide

112 II. Visual Basic Tmax 4GL Programming Guide

113 1... atmi.bas fdl. Bas comm..bas winapi.bas : atmi : : : windows Tmax.. (comm.bas). atmi Tmax Reference Manual Tmax Programming Guide.. Tmax 4GL Programming Guide

114 2. PUTINT Function PUTINT(ByVal Fdlptr&, Field As String, idx As Long, idata As Integer) As Long FIELD(FDL) Field Integer idata idx. Fdlptr : FDL Field : idx : idata : Dim lsendbuf As Long Dim lret As Long Dim intdata As Integer lsendbuf = tpalloc("field ", "", 0) lret = PUTINT(ByVal lsendbuf, "INTDATA", 0, intdata) PUTLONG, PUTDOUBLE, PUTVAR, PUTCAR, PUTFLOAT, PUTSTR, PUTCHR Tmax 4GL Programming Guide

115 PUTLONG Function PUTLONG(ByVal Fdlptr&, Field As String, idx As Long, ldata As Long) As Long FIELD(FDL) Field Long ldata idx. Fdlptr : FDL Field : Idx : LData : Dim lsendbuf As Long Dim lret As Long Dim longdata As Long lsendbuf = tpalloc("field ", "", 0) lret = PUTLONG(ByVal lsendbuf, "LONGDATA", 0, longdata) PUTINT, PUTDOUBLE, PUTVAR, PUTCAR, PUTFLOAT, PUTSTR, PUTCHR Tmax 4GL Programming Guide

116 PUTFLOAT Function PUTFLOAT(ByVal Fdlptr&, Field As String, idx As Long, ddata As Single) As Long FIELD(FDL) Field Single ddata idx. Fdlptr : FDL Field Idx Ddata Dim lsendbuf As Long Dim lret As Long Dim doubledata As Single lsendbuf = tpalloc("field ", "", 0) lret = PUTFLOAT(ByVal lsendbuf, "DOUBLEDATA", 0, doubledata) PUTINT, PUTLONG, PUTVAR, PUTCAR, PUTDOUBLE, PUTSTR, PUTCHR Tmax 4GL Programming Guide

117 PUTDOUBLE Function PUTDOUBLE(ByVal Fdlptr&, Field As String, idx As Long, ddata As Double) As Long FIELD(FDL) Field Double ddata idx. Fdlptr : FDL Field idx ddata Dim lsendbuf As Long Dim lret As Long Dim doubledata As Double lsendbuf = tpalloc("field ", "", 0) lret = PUTDOUBLE(ByVal lsendbuf, "DOUBLEDATA", 0, doubledata) PUTINT, PUTLONG, PUTVAR, PUTCAR, PUTFLOAT, PUTSTR, PUTCHR Tmax 4GL Programming Guide

118 PUTVAR Function PUTVAR(ByVal Fdlptr&, Field As String, idx As Long, text As String) As Long FIELD(FDL) Field String text idx. Fdlptr : FDL Field : idx : text : Dim lsendbuf As Long Dim lret As Long lsendbuf = tpalloc("field ", "", 0) lret = PUTVAR(ByVal lsendbuf, "INPUT", 0, txtinput.text) PUTINT, PUTLONG, PUTDOUBLE, PUTCAR, PUTFLOAT, PUTSTR, PUTCHR Tmax 4GL Programming Guide

119 PUTCAR_BA Function PUTCAR_BA(ByVal Fdlptr&, Field As String, idx As Long, ByteArray() As Byte, datalen As Long) As Long FIELD(FDL) Field Image ByteArray idx. Fdlptr : FDL Field : idx : ByteArray : datalen : ByteArray Dim isrc As Integer Dim lcopy As Long Dim lsize As Long Dim lbuffer() As Byte Dim datalen As Long lsendbuf = tpalloc("field", "", ) isrc = FreeFile Open ".\nmlogo.bmp" For Binary Access Read As isrc lsize = LOF(iSrc) datalen = lsize Do If lsize > MAX_BUFFER Then lsize = lsize - MAX_BUFFER lcopy = MAX_BUFFER Else lcopy = lsize End If ReDim lbuffer(lcopy - 1) Get isrc,, lbuffer Loop Until lcopy = lsize Close isrc lret = PUTCAR_BA(ByVal lsendbuf, "TP_BITMAP", 0, lbuffer, datalen) if lret < 0 then error processing Tmax 4GL Programming Guide

120 end if PUTINT, PUTLONG, PUTDOUBLE, PUTCAR, PUTVAR, PUTFLOAT, PUTSTR, PUTCHR Tmax 4GL Programming Guide

121 PUTSTR Function PUTSTR(ByVal strptr&, text As String) As Long STRING text. strptr : STRING text : Dim lsendbuf As Long Dim lret As Long Dim text As String lsendbuf = tpalloc("string", "", 1024) lret = PUTSTR(lsendbuf, text) PUTINT, PUTLONG, PUTDOUBLE, PUTVAR, PUTCAR, PUTFLOAT, PUTCHR Tmax 4GL Programming Guide

122 PUTCHR Function PUTCHR(ByVal Fdlptr&, ByVal Field As String, ByVal idx As Integer, ByRef data As String, ByVal datalen As Integer) As Integer Tmax fdl fbchg_tu() nth fldname value. value Char. Fbchg_tu() (nth) (value),. Fldptr : STRING Fieldt : Idx : Data : String datalen : String Dim lsendbuf As Long Dim lret As Long Dim chr As String lsendbuf = fballoc(10, 100) chr = a lret = PUTSTR(lsendbuf, CHR, 0, chr, 1 ) PUTINT, PUTLONG, PUTDOUBLE, PUTVAR, PUTCAR, PUTFLOAT, PUTSTR Tmax 4GL Programming Guide

123 PUTCAR Function PUTCAR(ByVal Carptr&, text As String, Datalen As Long) As Long CARRAY String text. Carptr : FDL Text : Datalen : Dim lsendbuf As Long Dim lret As Long Dim DataLen As Long lsendbuf = tpalloc("carray", "", 1024) 'CARRAY. DataLen = LenB(txtInput.text) lret = PUTCAR(ByVal lsendbuf, txtinput.text, DataLen) PUTINT, PUTLONG, PUTDOUBLE, PUTVAR, PUTFLOAT, PUTSTR, PUTCHR lstrcpy. ) Dim lsendbuf As Long Dim lret As Long lsendbuf = tpalloc("string", "", 1024) lret = lstrcpy(byval lsendbuf, ByVal txtinput.text) Tmax 4GL Programming Guide

124 GETINT Function GETINT(ByVal Fdlptr&, Field As String, idx As Long, idata As Integer) As Long FIELD(FDL) Field idxinteger idata. Fdlptr : FDL Field : idx : idata : Dim lsendbuf As Long Dim lret As Long Dim intdata As Integer lsendbuf = tpalloc("field ", "", 0) lret = GETINT(ByVal lsendbuf, "INTDATA", 0, intdata) GETLONG, GETDOUBLE, GETVAR, GETCAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

125 GETLONG Function GETLONG(ByVal Fdlptr&, Field As String, idx As Long, ldata As Long) As Long FIELD(FDL) Field idxlong ldata. Fdlptr : FDL Field : idx : ldata : Dim lsendbuf As Long Dim lret As Long Dim longdata As Long lsendbuf = tpalloc("field ", "", 0) lret = GETLONG(ByVal lsendbuf, "LONGDATA", 0, longdata) GETINT, GETDOUBLE, GETVAR, GETCAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

126 GETFLOAT Function GETFLOAT (ByVal Fdlptr&, Field As String, idx As Long, ddata As Single) As Long FIELD(FDL) Field idxsingle ddata. Fdlptr : FDL Field idx ddata Dim lsendbuf As Long Dim lret As Long Dim doubledata As Single lsendbuf = tpalloc("field ", "", 0) lret = GETFLOAT (ByVal lsendbuf, "DOUBLEDATA", 0, doubledata) Tmax 4GL Programming Guide

127 GETDOUBLE Function GETDOUBLE(ByVal Fdlptr&, Field As String, idx As Long, ddata As Double) As Long FIELD(FDL) Field idxdouble ddata. Fdlptr : FDL Field idx ddata Dim lsendbuf As Long Dim lret As Long Dim doubledata As Double lsendbuf = tpalloc("field ", "", 0) lret = GETDOUBLE(ByVal lsendbuf, "DOUBLEDATA", 0, doubledata) GETINT, GETLONG, GETVAR, GETCAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

128 GETVAR Function GETVAR(ByVal Fdlptr&, Field As String, idx As Long, text As String) As Long FIELD(FDL) Field idxstring text. Fdlptr : FDL Field : idx : text : Dim lsendbuf As Long Dim lret As Long lsendbuf = tpalloc("field ", "", 0) lret = GETVAR(ByVal lsendbuf, "INPUT", 0, txtoutput.text) GETINT, GETLONG, GETDOUBLE, GETCAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

129 GETCAR_BA Function GETCAR_BA (ByVal Fdlptr&, Field As String, idx As Long, ByRef ByteArray() As Byte, datalen As Long) As Long FIELD(FDL) Field idximage ByteArray. Fdlptr : FDL Field : idx : ByteArray : datalen : ByteArray Dim rbuffer(102400) As Byte Dim datalen As Long lrecvbuf = tpalloc("field", "", ) lret = PUTCAR_BA(ByVal lsendbuf, "TP_BITMAP", 0, lbuffer, datalen) if lret < 0 then error processing end if lret = tpcall(byval "FILEUP", ByVal lsendbuf, ByVal datalen&, lrecvbuf, lrbuflen, ByVal 0) lblcomment.caption = lblcomment.caption & " -> tpcall : " & lret If lret = -1 Then error processing end If lret = GETCAR_BA(ByVal lrecvbuf, "TP_BITMAP", 0, rbuffer, datalen) if lret < 0 then error processing end if GETINT, GETLONG, GETDOUBLE, GETCAR, GETVAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

130 GETSTR Function GETSTR(ByVal strptr&, text As String) As Long STRING text. strptr : STRING text : Dim lsendbuf As Long Dim lret As Long Dim text As String lsendbuf = fballoc(10, 100) Irecvbuf = fballoc(10, 100) lret = tpcall(byval SVC1, ByVal lsendbuf, ByVal DataLen&, lrecvbuf, lrbuflen, ByVal 0) lret = GETSTR(lrecvbuf, text) GETINT, GETLONG, GETDOUBLE, GETVAR, GETCAR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

131 GETCHR Function GETCHR(ByVal Fdlptr&, ByVal Field As String, ByVal idx As Integer, ByRef data As String, ByVal datalen As Integer) As Integer Tmax fdl fbchg_tu() nth Field value. value Char. fbget_tu() (idx) (char).. Fldptr : STRING Field : Idx : Data : string datalen : string Dim lsendbuf As Long Dim lret As Long Dim chr As String lsendbuf = fballoc(10, 100) Irecvbuf = fballoc(10, 100) lret = tpcall(byval SVC1, ByVal lsendbuf, ByVal DataLen&, lrecvbuf, lrbuflen, ByVal 0) 'lret = GETSTR(lrecvbuf, CHR, 0, chr, 1 ) GETINT, GETLONG, GETDOUBLE, GETVAR, GETSTR, GETCAR, GETFLOAT Tmax 4GL Programming Guide

132 GETCAR Function GETCAR(ByVal Carptr&, text As String, Datalen As Long) As Long CARRAY String text. Carptr : FDL Text : Datalen : Dim lsendbuf As Long Dim lrecvbuf As Long Dim text As String Dim lret As Long Dim lrbuflen As Long lsendbuf = tpalloc("carray", "", 1024) lrecvbuf = tpalloc("carray", "", 1024) lret = tpcall(byval SVC1, ByVal lsendbuf, ByVal DataLen&, lrecvbuf, lrbuflen, ByVal 0) 'CARRAY. lret = GETCAR(lsendbuf, text, lrbuflen) GETINT, GETLONG, GETDOUBLE, GETVAR, GETSTR, GETFLOAT, GETSTR, GETCHR Tmax 4GL Programming Guide

133 TmaxError Sub TmaxError(StrErr As String) StrErr tperrno string error MsgBox. StrErr : Dim lsendbuf As Long Dim lrecvbuf As Long Dim lret As Long Dim lrbuflen As Long lsendbuf = tpalloc("carray", "", 1024) lrecvbuf = tpalloc("carray", "", 1024) lret = tpcall(byval "SVC1", ByVal lsendbuf, ByVal 0, lrecvbuf, lrbuflen, ByVal 0) If lret = -1 Then TmaxError ("tpcall (SVC1)") End If FdlErrorMsg Tmax 4GL Programming Guide

134 FdlErrorMsg Sub FdlErrorMsg(StrErr As String) StrErr fberrno MsgBox. StrErr : lret = fbput(byval lsendbuf, ByVal lfid, ByVal txtinput.text, ByVal 0) If lret = -1 Then FdlErrorMsg("fbput") error processing End If TmaxError Tmax 4GL Programming Guide

135 FilltpstartBuf Function FilltpstartBuf(sndbufp As Long, startinfop As tpstart_t) As Long Tmax tpstart_t. sndbufp : tpalloc startinfop : tpstart_t Dim lsndbuf As Integer Dim lret As Integer TmaxError Tmax 4GL Programming Guide

136 3. Visual Basic Sample, (EMP),,,.. TMAXDIR, IP.. : atmi.bas, fdl.bas, comm.bas, winapi.bas. *** VB *** EmployeeGrid.frm :. EmployeeGrid.frx EmployeeMgr.frm :Main.,,,. MSSCCPRJ.SCC QA_4GL.vbg QA_4GL_Sample.exe QA_4GL_Sample.vbp QA_4GL_Sample.vbw Atmi.bas comm.bas fdl.bas winapi.bas *** *** emp_c.mk : Makefile. emp_c.pc :. AIXOracle 9i. employee.m : Tmax *** *** demo.f : Field key bufferr. tmax. - Tmax : NULL - : FIELD KEY BUFFER fdlc fdl - : tpcall() Tmax 4GL Programming Guide

137 - : Tms AutoTransaction - : FDLSELECT, FDLINSERT, FDLDELETE, FDLUPDATE - : SVRGROUP EmployeeMgr EmployeeMgr Caption= LabelErr Caption= BtnExit BtnIns BtnDel BtnUdt BtnSel EditName EditEmpNo EditDept EditComm EditSal EditDate EditMgr EditJob Caption= Caption= Caption= Caption= Caption= < > Tmax 4GL Programming Guide

138 < > EmployeeMgr.frm Source Option Explicit Private Sub BtnDel_Click() Dim Isendbuf As Long Dim Irecvbuf As Long Dim Irbuflen As Long Dim Iret As Long Dim text As String Dim value As Long Dim dvalue As Double Dim svalue As Single Dim tx_b As Integer Dim txbool As Integer ' 1, 0 ' ' tpstart ' tmaxstart ' ' txbool = 0 If EditEmpNo.text = "" Then MsgBox "." Tmax 4GL Programming Guide

139 tmaxend Exit Sub End If value = Trim(EditEmpNo.text) ' ' Isendbuf = fballoc(100, 1024) If Isendbuf = Null Then TmaxError ("fballoc") Call fbfree(isendbuf) tmaxend Exit Sub End If ' ' Irecvbuf = fballoc(100, 1024) If Irecvbuf = Null Then TmaxError ("fballoc") Call fbfree(irecvbuf) tmaxend Exit Sub End If Iret = PUTLONG(ByVal Isendbuf, "EMPNO", 0, value) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tx_begin txbool = 1 If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tpcall(byval "FDLDELETE", ByVal Isendbuf, ByVal 0, Irecvbuf, Irbuflen, ByVal 0) LabelErr.Caption = "sbuf = " & Isendbuf & ", rbuf = " & Irecvbuf If Iret = -1 Then TmaxError ("tpcall(svc1)") ViewErr (Irecvbuf) Call ExitSub(txbool, Isendbuf, Irecvbuf) Tmax 4GL Programming Guide

140 End If ' ' Iret = tx_commit If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) Else txbool = 1 Call ExitSub(txbool, Isendbuf, Irecvbuf) End If End Sub Private Sub BtnExit_Click() End End Sub Private Sub BtnIns_Click() Dim Isendbuf As Long Dim Irecvbuf As Long Dim Irbuflen As Long Dim Iret As Long Dim text As String Dim value As Long Dim dvalue As Double Dim svalue As Single Dim lenl As Long Dim txbool As Integer ' 1, 0 ' ' tpstart ' tmaxstart ' ' txbool = 0 If EditEmpNo.text = "" Then MsgBox "." tmaxend Exit Sub End If ' ' Isendbuf = fballoc(100, 1024) If Isendbuf = Null Then TmaxError ("fballoc") Call fbfree(isendbuf) Tmax 4GL Programming Guide

141 tmaxend Exit Sub End If ' ' Irecvbuf = fballoc(100, 1024) If Irecvbuf = Null Then TmaxError ("fballoc") Call fbfree(irecvbuf) tmaxend Exit Sub End If Iret = PUTLONG(ByVal Isendbuf, "EMPNO", 0, Trim(EditEmpNo.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "ENAME", 0, Trim(EditName.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "JOB", 0, Trim(EditJob.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTLONG(ByVal Isendbuf, "MGR", 0, Trim(EditMgr.text)) If Iret = -1 Then ' ' Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "DATE", 0, Trim(EditDate.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If svalue = Trim(EditSal.text) ' fbput, fbget_fldkey comm.bas. ' ' fbget_fldkey. ' Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("sal"), svalue, ByVal lenl) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If '. ' Tmax 4GL Programming Guide

142 'svalue = Trim(EditComm.text) 'Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("comm"), svalue, ByVal lenl) 'If Iret = -1 Then ' FdlErrorMsg ("fbput") ' Exit Sub 'End If '. ' Iret = PUTFLOAT(ByVal Isendbuf, "COMM", 0, Trim(EditComm.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTLONG(ByVal Isendbuf, "DEPTNO", 0, Trim(EditDept.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tx_begin txbool = 1 If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tpcall(byval "FDLINSERT", ByVal Isendbuf, ByVal 0, Irecvbuf, Irbuflen, ByVal 0) LabelErr.Caption = "sbuf = " & Isendbuf & ", rbuf = " & Irecvbuf If Iret = -1 Then TmaxError ("tpcall(svc1)") ViewErr (Irecvbuf) Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tx_commit If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) Else txbool = 1 Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Tmax 4GL Programming Guide

143 End Sub ' ' ' ' Private Sub BtnSel_Click() Hide ' ' EmployeeGrid.Show End Sub ' ' Private Sub BtnUdt_Click() Dim Isendbuf As Long Dim Irecvbuf As Long Dim Irbuflen As Long Dim Iret As Long Dim text As String Dim value As Long Dim dvalue As Double Dim svalue As Single Dim lenl As Long Dim txbool As Integer ' 1, 0 ' ' tpstart ' tmaxstart ' ' txbool = 0 If EditEmpNo.text = "" Then MsgBox "." tmaxend Exit Sub End If ' ' Isendbuf = fballoc(100, 1024) If Isendbuf = Null Then TmaxError ("fballoc") Call fbfree(isendbuf) tmaxend Exit Sub End If ' ' Irecvbuf = fballoc(100, 1024) Tmax 4GL Programming Guide

144 If Irecvbuf = Null Then TmaxError ("fballoc") Call fbfree(irecvbuf) tmaxend Exit Sub End If Iret = PUTLONG(ByVal Isendbuf, "EMPNO", 0, Trim(EditEmpNo.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "ENAME", 0, Trim(EditName.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "JOB", 0, Trim(EditJob.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTLONG(ByVal Isendbuf, "MGR", 0, Trim(EditMgr.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Iret = PUTVAR(ByVal Isendbuf, "DATE", 0, Trim(EditDate.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If svalue = Trim(EditSal.text) ' Declare Function fbput Lib "TMAX4GL.DLL" (ByVal pfbuf As Long, ByVal fieldid As Long, pbuffer As Any, ByVal Fieldlen As Long) As Long Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("sal"), svalue, ByVal lenl) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If svalue = Trim(EditComm.text) Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("comm"), svalue, ByVal lenl) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If Tmax 4GL Programming Guide

145 Iret = PUTLONG(ByVal Isendbuf, "DEPTNO", 0, Trim(EditDept.text)) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tx_begin txbool = 1 If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tpcall(byval "FDLUPDATE", ByVal Isendbuf, ByVal 0, Irecvbuf, Irbuflen, ByVal 0) LabelErr.Caption = "sbuf = " & Isendbuf & ", rbuf = " & Irecvbuf If Iret = -1 Then TmaxError ("tpcall(svc1)") ViewErr (Irecvbuf) Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tx_commit If Iret < 0 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) Else txbool = 1 Call ExitSub(txbool, Isendbuf, Irecvbuf) End If End Sub Private Sub ExitSub(txbool As Integer, Isendbuf As Long, Irecvbuf As Long) If txbool = 1 Then tx_rollback End If ' ' Call fbfree(byval Isendbuf&) Call fbfree(byval Irecvbuf&) ' tpend ' tmaxend Tmax 4GL Programming Guide

146 Exit Sub End Sub ' tpstart ' Private Sub tmaxstart() Dim ret As Integer '. ' ' atmi.bas. ' ' Declare Function tmaxreadenv Lib "TMAX4GL.DLL" (ByVal envfile As String, ByVal label As String) As Long ' ' Tmax Reference Manual. ' ret = tmaxreadenv("c:\tmax.env", "aix5l389") If ret < 0 Then TmaxError ("tmaxreadenv") Exit Sub End If ret = tpstart(byval 0&) If ret = -1 Then LabelErr.Caption = "tpstart error = " & gettperrno() TmaxError ("tpstart") Exit Sub Else LabelErr.Caption = "tpstart return value = " & ret & " tpstart success" End If End Sub ' tpend ' Private Sub tmaxend() Dim ret As Integer ret = tpend() If ret = -1 Then LabelErr.Caption = "tpend error = " & gettperrno() TmaxError ("tpend") Exit Sub Else LabelErr.Caption = "tpreturn return value = " & ret End If End Sub Tmax 4GL Programming Guide

147 < > ' ' Private Sub ViewErr(ByVal a As Long) 'E_TYPE 9009 long - - 'E_CODE 9010 long - - 'E_MSG 9011 string - - 'E_TMP 9012 long - - Dim typel, codel, tmpl As Long Dim msgs As String Dim Iret As Integer ' Tmax FDL Reference Manual ' ' comm.bas ' Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_type"), 0, typel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_code"), 0, codel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = GETVAR(ByVal a, "E_MSG", 0, msgs) If Iret = -1 Then TmaxError ("ViewErr, GETVAR, E_MSG") Exit Sub End If Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_tmp"), 0, tmpl, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If ' ' Tmax 4GL Programming Guide

148 MsgBox ("Error Type : " & typel & ",Code : " & codel & ",Message : " & msgs & ",Tmp : " & tmpl) End Sub Tmax 4GL Programming Guide

149 EmployeeGrid EmployeeGrid Caption= InfoText MultiLine=True BtnReturn Caption= < > < > EmployeeGrid.frm Source LabelErr Option Explicit ' ' Private Sub BtnReturn_Click() Hide EmployeeMgr.Show End Sub ' Click ' Private Sub Form_Activate() Dim Isendbuf As Long Tmax 4GL Programming Guide

150 Dim Irecvbuf As Long Dim Irbuflen As Long Dim Iret As Integer Dim text As String Dim value As Long Dim dvalue As Double Dim svalue As Single Dim lenl As Long Dim inits, outputs As String Dim empnos, enames, jobs, mgrs, dates, sals, comms, deptnos As String Dim cntl As Long Dim eno As Long Dim txbool As Integer ' 1, 0 ' ' tpstart ' tmaxstart ' ' txbool = 0 inits = vbcrlf & vbtab & vbtab & vbtab & "***** *****" & vbcrlf & vbtab & "=========================================================" & vbcrlf & vbtab & " COMM " & vbcrlf & vbtab & "=========================================================" & vbcrlf & vbcrlf If EmployeeMgr.EditEmpNo.text = "" Then MsgBox "." Hide EmployeeMgr.Show Exit Sub End If ' ' Isendbuf = fballoc(100, 1024) If Isendbuf = Null Then TmaxError ("fballoc") Call fbfree(isendbuf) tmaxend Exit Sub End If ' ' Irecvbuf = fballoc(100, 1024) If Irecvbuf = Null Then Tmax 4GL Programming Guide

151 TmaxError ("fballoc") Call fbfree(irecvbuf) tmaxend Exit Sub End If '. eno = Trim(EmployeeMgr.EditEmpNo.text) Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("empno"), eno, ByVal lenl) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tpcall(byval "FDLSELECT", ByVal Isendbuf, ByVal 0, Irecvbuf, Irbuflen, ByVal 0) If Iret = -1 Then ViewErr (Irecvbuf) Call ExitSub(txbool, Isendbuf, Irecvbuf) End If cntl = fbkeyoccur(byval Irecvbuf, ByVal fbget_fldkey("empno")) Dim i As Long For i = 0 To cntl - 1 Iret = GETLONG(ByVal Irecvbuf, "EMPNO", i, value) If Iret = -1 Then TmaxError ("GETLONG(EMPNO)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If empnos = value Iret = GETVAR(ByVal Irecvbuf, "ENAME", i, text) If Iret = -1 Then TmaxError ("GETVAR(ENAME)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If enames = text Iret = GETVAR(ByVal Irecvbuf, "JOB", i, text) If Iret = -1 Then TmaxError ("GETVAR(JOB)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If jobs = text Tmax 4GL Programming Guide

152 Iret = GETLONG(ByVal Irecvbuf, "MGR", i, value) If Iret = -1 Then TmaxError ("GETLONG(MGR)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If mgrs = value Iret = GETVAR(ByVal Irecvbuf, "DATE", i, text) If Iret = -1 Then TmaxError ("GETVAR(DATE)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If dates = text ' SAL float. ' ' comm.bas. ' Iret = fbget_tu(byval Irecvbuf, ByVal fbget_fldkey("sal"), i, svalue, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If sals = svalue Iret = GETFLOAT(ByVal Irecvbuf, "COMM", i, svalue) If Iret = -1 Then TmaxError ("GETFLOAT(COMM)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If comms = svalue Iret = GETLONG(ByVal Irecvbuf, "DEPTNO", i, value) If Iret = -1 Then TmaxError ("GETLONG(DEPTNO)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If deptnos = value & vbcrlf outputs = outputs & " " & empnos & vbtab & enames & vbtab & jobs & vbtab & mgrs & vbtab & dates & vbtab & sals & vbtab & comms & vbtab & deptnos Next i InfoText.text = inits & outputs ' ' LabelErr.Caption = "SAL = " & dvalue Tmax 4GL Programming Guide

153 Call ExitSub(txbool, Isendbuf, Irecvbuf) End Sub Private Sub ExitSub(txbool As Integer, Isendbuf As Long, Irecvbuf As Long) If txbool = 1 Then tx_rollback End If ' ' Call fbfree(byval Isendbuf&) Call fbfree(byval Irecvbuf&) ' tpend ' tmaxend Exit Sub End Sub ' tpstart ' Private Sub tmaxstart() Dim ret As Integer '. ' ' atmi.bas. ' ' Declare Function tmaxreadenv Lib "TMAX4GL.DLL" (ByVal envfile As String, ByVal label As String) As Long ' ' Tmax Reference Manual. ' ret = tmaxreadenv("c:\tmax.env", "aix5l389") If ret < 0 Then TmaxError ("tmaxreadenv") Exit Sub End If ret = tpstart(byval 0&) If ret = -1 Then LabelErr.Caption = "tpstart error = " & gettperrno() TmaxError ("tpstart") Exit Sub Else LabelErr.Caption = "tpstart return value = " & ret & " tpstart success" End If End Sub ' tpend ' Tmax 4GL Programming Guide

154 Private Sub tmaxend() Dim ret As Integer ret = tpend() If ret = -1 Then LabelErr.Caption = "tpend error = " & gettperrno() TmaxError ("tpend") Exit Sub Else LabelErr.Caption = "tpreturn return value = " & ret End If End Sub ' ' Private Sub ViewErr(ByVal a As Long) 'E_TYPE 9009 long - - 'E_CODE 9010 long - - 'E_MSG 9011 string - - 'E_TMP 9012 long - - Dim typel As Long Dim codel As Long Dim msgs As String Dim tmpl As Long Dim Iret As Integer Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_type"), 0, typel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_code"), 0, codel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = GETVAR(ByVal a, "E_MSG", 0, msgs) Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_tmp"), 0, tmpl, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If MsgBox ("Error Type : " & typel & ",Code : " & codel & ",Message : " & msgs & ",Tmp : " & tmpl) Tmax 4GL Programming Guide

155 End Sub demo.f DataBase EMP Table EMPNO NUMBER NOT NULL P1 ENAME VARCHAR(16) JOB VARCHAR(16) MGR NUMBER HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER Tmax 4GL Programming Guide

156 emp_c.pc Tmax 4GL Programming Guide

157 Tmax 4GL Programming Guide

158 Tmax 4GL Programming Guide

159 Tmax 4GL Programming Guide

160 Tmax 4GL Programming Guide

161 Tmax 4GL Programming Guide

162 } Tmax 4GL Programming Guide

163 emp_c.mk Tmax 4GL Programming Guide

164 tmconfig.m *DOMAIN dom1 *NODE tmax1 *SVRGROUP svg1 *SERVER emp_c *SERVICE FDLSELECT FDLUPDATE FDLDELETE FDLINSERT SHMKEY=70000, MAXUSER=200, MINCLH=1, MAXCLH=5, TPORTNO=8888, BLOCKTIME=200, TXTIME=200 TMAXDIR="/home/tmax", APPDIR="/home/tmax/appbin", PATHDIR="/home/tmax/path", TLOGDIR= "/home/tmax/log/tlog", SLOGDIR="/home/tmax/log/slog" ULOGDIR="/home/tmax/log/ulog" NODENAME=tmax1, DBNAME=ORACLE, OPENINFO="ORACLE_XA+Acc=P/scott/tiger+SesTm=60", TMSNAME = svg1_tms SVGNAME=svg1, MIN=1 SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c Tmax 4GL Programming Guide

165 III. Delphi Tmax 4GL Programming Guide

166 1.,.. C.. atmi Tmax Reference ManualTmax Programing Guide.. atmi.pas fdl.pas : atmi : Tmax 4GL Programming Guide

167 2. Delphi Sample,. tpstart TPSTART_T Tmax Tmax. : atmi.pas, fdl.pas, TuxSvc.pas. *** *** Atmi.dcu Atmi.pas EmployeeMgr.bpg EmployeeMgr.cfg EmployeeMgr.dof EmployeeMgr.dpr EmployeeMgr.exe EmployeeMgr.res Fdl.dcu Fdl.pas TuxSvc.pas main.dcu main.dfm main.pas : client. *** *** emp_c.mk : Makefile. emp_c.pc :. AIXOracle 9i. employee.m : Tmax *** *** demo.f : Field key bufferr. tmax. - Tmax : Tmax - : FIELD KEY BUFFER fdlc fdl - : tpcall() - : Tms AutoTransaction Tmax 4GL Programming Guide

168 - : FDLSELECT, FDLDELETE, FDLUPDATE, FDLINSERT - : SVRGROUP EmployeeMgrForm EmployeeMgrForm Caption= LabelErr TLabel Caption= BtnExit TButton Caption= BtnIns TButton Caption= BtnDel TButton Caption= BtnUdt TButton Caption= BtnSel TButton Caption= EditName EditEmpNo EditDept EditComm EditSal EditDate EditMgr EditJob MList BtnReturn TEdit TEdit TEdit TEdit TEdit TEdit TEdit TEdit TMemo TButton < > Tmax 4GL Programming Guide

169 < > main.pas Source unit main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TEmployeeMgrForm = class(tform) LabelEmpNo: TLabel; LabelName: TLabel; EditEmpNo: TEdit; EditName: TEdit; GroupBoxInfo: TGroupBox; LabelJob: TLabel; LabelMgr: TLabel; LabelDate: TLabel; LabelSal: TLabel; EditJob: TEdit; EditMgr: TEdit; EditDate: TEdit; EditSal: TEdit; EditComm: TEdit; Tmax 4GL Programming Guide

170 EditDept: TEdit; LabelComm: TLabel; LabelDept: TLabel; BtnSel: TButton; BtnUdt: TButton; BtnDel: TButton; BtnIns: TButton; BtnExit: TButton; LabelErr: TLabel; MList: TMemo; BtnReturn: TButton; procedure BtnExitClick(Sender: TObject); procedure BtnSelClick(Sender: TObject); procedure BtnUdtClick(Sender: TObject); procedure BtnDelClick(Sender: TObject); procedure BtnInsClick(Sender: TObject); procedure tmaxstart(); procedure BtnReturnClick(Sender: TObject); procedure ViewErr( a:pointer ); { Private declarations } public { Public declarations } end; var EmployeeMgrForm: TEmployeeMgrForm; implementation // Atmi, Fdl uses Atmi, Fdl; const BufferSize = 1024; {$R *.DFM} // String {$H+} procedure TEmployeeMgrForm.tmaxStart(); var tpinfo: ptpstart; ret: integer; begin // atmi.pas. Tmax 4GL Programming Guide

171 // Function tmaxreadenv(a:pchar; b:pchar):integer; cdecl; external TmaxDLL; // Tmax Reference Manual. ret := tmaxreadenv('c:\tmax.env', 'aix5l389'); if ret < 0 then begin ShowMessage('tmaxreadenv Error'); Exit; end; // tpstart tpinfo := tpalloc('tpstart', NIL, 0); if tpinfo = Nil then begin ShowMessage('tpinfo tpalloc failed,' + StrPas(tpstrerror(gettperrno))); tpfree(tpinfo); Exit; end; // //. // // // tpinfo.usrname := 'tmax'; // // tpinfo.cltname := 'tmax'; // // tpinfo.flags := TPUNSOL_POLL; // Tmax ret := tpstart(tpinfo); if ret < 0 then begin ShowMessage('tpstart failed' + StrPas(tpstrerror(gettperrno))); tpfree(tpinfo); tpend(); Exit; end; // tpfree(tpinfo); end; //. procedure TEmployeeMgrForm.BtnExitClick(Sender: TObject); begin tpend(); close; end; Tmax 4GL Programming Guide

172 procedure TEmployeeMgrForm.BtnUdtClick(Sender: TObject); var sndbuf, revbuf: Pointer; ret, empno_l, mgr_l, deptno_l: longint; sal_f, comm_f: single; job_s, ename_s: pointer; rlen: integer; date_s: string[100]; begin tmaxstart(); // sndbuf := fballoc(1000, 10000); if sndbuf = Nil then begin ShowMessage('sndbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); fbfree(sndbuf); tpend(); Exit; end; // revbuf := fballoc(1000, 10000); if revbuf = Nil then begin ShowMessage('revbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); fbfree(revbuf); tpend(); Exit; end; empno_l := StrToInt(EditEmpNo.text); fbput(sndbuf, 0); ename_s := PChar(EditName.text); fbput(sndbuf, fbget_fldkey('ename'), ename_s, 0); job_s := PChar(EditJob.text); fbput(sndbuf, fbget_fldkey('job'), job_s, 0); mgr_l := StrToInt(EditMgr.text); fbput(sndbuf, 0); // date_s := PChar(EditDate.text); // fbput(sndbuf, 0); date_s := EditDate.text; Tmax 4GL Programming Guide

173 rlen := length(editdate.text); ret := fbchg_tu(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'DATE error!!!'; Exit; end; sal_f := StrToFloat(EditSal.text); fbput(sndbuf, 0); comm_f := StrToFloat(EditComm.text); fbput(sndbuf, 0); deptno_l := StrToInt(EditDept.text); fbput(sndbuf, 0); // ret := tx_begin(); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'tx_begin error'; Exit; end; // ret := tpcall('fdlupdate', 0); if ret < 0 then begin ViewErr(revbuf); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Exit; end; ret := tx_commit(); if ret < 0 then begin ShowMessage('tx_commit failed! ' + StrPas(tpstrerror(gettperrno))); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Exit; end; // fbfree(sndbuf); Tmax 4GL Programming Guide

174 fbfree(revbuf); tpend(); end; procedure TEmployeeMgrForm.BtnDelClick(Sender: TObject); var sndbuf, revbuf: Pointer; empno_l, ret: longint; rlen: integer; begin tmaxstart(); // sndbuf := fballoc(1000, 10000); if sndbuf = Nil then begin ShowMessage('sndbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); tpend(); Exit; end; // revbuf := fballoc(1000, 10000); if sndbuf = Nil then begin ShowMessage('sndbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); tpend(); Exit; end; empno_l := StrToInt(EditEmpNo.text); fbput(sndbuf, 0); // ret := tx_begin(); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'tx_begin error'; Exit; end; // ret := tpcall('fdldelete', 0); if ret < 0 then begin ViewErr(revbuf); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Tmax 4GL Programming Guide

175 Exit; end; ret := tx_commit(); if ret < 0 then begin ViewErr(revbuf); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Exit; end; // fbfree(sndbuf); fbfree(revbuf); tpend(); end; procedure TEmployeeMgrForm.BtnInsClick(Sender: TObject); var sndbuf, revbuf: Pointer; empno_l, mgr_l, deptno_l: longint; sal_f, comm_f: single; job_s, ename_s, date_s: string[100]; ret, rlen: integer; begin // tpstart tmaxstart(); // LabelErr.Caption := ''; sndbuf := fballoc(1000,10000); if sndbuf = Nil then begin LabelErr.Caption := 'sndbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno)); fbfree(sndbuf); tpend(); Exit; end; revbuf := fballoc(100,1000); if revbuf = Nil then begin LabelErr.Caption := 'revbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno)); fbfree(revbuf); tpend(); Exit; Tmax 4GL Programming Guide

176 end; empno_l := StrToInt(EditEmpNo.text); ret := fbput(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := 'EMPNO error!!!'; Exit; end; ename_s := EditName.text; rlen := length(editname.text); ret := fbchg_tu(sndbuf, fbget_fldkey('ename'),0,@ename_s[1], 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'ENAME error!!!'; Exit; end; job_s := EditJob.text; rlen := length(editjob.text); ret := fbchg_tu(sndbuf, fbget_fldkey('job'),0,@job_s[1], 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'JOB error!!!'; Exit; end; mgr_l := StrToInt(EditMgr.text); ret := fbput(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'MGR error!!!'; Exit; end; date_s := EditDate.text; rlen := length(editdate.text); ret := fbchg_tu(sndbuf, fbget_fldkey('date'),0,@date_s[1], 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'DATE error!!!'; Exit; end; sal_f := StrToFloat(EditSal.text); ret := fbput(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'SAL error!!!'; Exit; end; Tmax 4GL Programming Guide

177 comm_f := StrToFloat(EditComm.text); ret := fbput(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'COMM error!!!'; Exit; end; deptno_l := StrToInt(EditDept.text); ret := fbput(sndbuf, 0); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'DEPTNO error!!!'; Exit; end; // ret := tx_begin(); if ret = -1 then begin LabelErr.Caption := LabelErr.Caption + 'tx_begin error'; Exit; end; // ret := tpcall('fdlinsert', 0); if ret < 0 then begin ViewErr(revbuf); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Exit; end; ret := tx_commit(); if ret < 0 then begin ViewErr(revbuf); tx_rollback(); fbfree(sndbuf); fbfree(revbuf); tpend(); Exit; end; // fbfree(revbuf); fbfree(sndbuf); tpend(); Tmax 4GL Programming Guide

178 end; procedure TEmployeeMgrForm.BtnReturnClick(Sender: TObject); begin BtnReturn.Visible := false; MList.Visible := false; end; procedure TEmployeeMgrForm.ViewErr( a:pointer ); var types: PChar; codes: PChar; msgs: PChar; tmps: PChar; // Iret: Integer; begin // E_TYPE 9009 long - - // E_CODE 9010 long - - // E_MSG 9011 string - - // E_TMP 9012 long - - types := fbgetvals(a, fbget_fldkey('e_type'), 0); codes := fbgetvals(a, fbget_fldkey('e_code'), 0); msgs := fbgetvals(a, fbget_fldkey('e_msg'), 0); tmps := fbgetvals(a, fbget_fldkey('e_tmp'), 0); ShowMessage('Error Type : ' + types + ',Code : ' + codes + ',Message : ' + msgs + ',Tmp : ' + tmps); end; Tmax 4GL Programming Guide

179 //. procedure TEmployeeMgrForm.BtnSelClick(Sender: TObject); var sndbuf, revbuf: Pointer; empno_l, ret: longint; rlen: integer; varf: single; cnt_i, i: integer; empno_s, name_s, job_s, mgr_s, date_s, sal_s, comm_s, dept_s: string; output_s: string; init_s: string; begin // MList.Visible := true; BtnReturn.Visible := true; tmaxstart(); // sndbuf := fballoc(100,1000); if sndbuf = Nil then begin ShowMessage('sndbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); fbfree(sndbuf); Tmax 4GL Programming Guide

180 tpend(); Exit; end; // revbuf := fballoc(100,1000); if revbuf = Nil then begin ShowMessage('revbuf tpalloc failed, ' + StrPas(tpstrerror(gettperrno))); fbfree(revbuf); tpend(); Exit; end; empno_l := StrToInt(EditEmpNo.text); fbput(sndbuf, 0); // ret := tpcall('fdlselect', 0); if ret < 0 then begin ViewErr(revbuf); fbfree(sndbuf); fbfree(revbuf); init_s := #10#13#9#9#9'*********** ***********'#10#9'================================================== ==========='#10#9' COMM '#10#9'========================================================== ==='#10; output_s := init_s + ' '; MList.Lines.Text := output_s; tpend(); Exit; end; cnt_i := fbkeyoccur(revbuf, fbget_fldkey('empno')); for i := 0 to cnt_i -1 do begin empno_s := fbgetvals(revbuf, fbget_fldkey('empno'),i); name_s := fbgetvals(revbuf, fbget_fldkey('ename'),i); job_s := fbgetvals(revbuf, fbget_fldkey('job'),i); mgr_s := fbgetvals(revbuf, fbget_fldkey('mgr'),i); date_s := fbgetvals(revbuf, fbget_fldkey('date'),i); sal_s := fbgetvals(revbuf, fbget_fldkey('sal'),i); comm_s := fbgetvals(revbuf, fbget_fldkey('comm'),i); dept_s := fbgetvals(revbuf, fbget_fldkey('deptno'),i); output_s := output_s + ' ' + empno_s + #9 + name_s + #9 + job_s + Tmax 4GL Programming Guide

181 #9 + mgr_s + #9 + date_s + #9 + sal_s + #9 + comm_s + #9 + dept_s + #10 ; end; init_s := #10#13#9#9#9'*********** ***********'#10#9'================================================== ==========='#10#9' COMM '#10#9'========================================================== ==='#10; output_s := init_s + output_s; MList.Lines.Text := output_s; // fbfree(sndbuf); fbfree(revbuf); tpend(); end; Tmax 4GL Programming Guide

182 procedure TEmployeeMgrForm.ViewErr( a:pointer ); var types: PChar; codes: PChar; msgs: PChar; tmps: PChar; // Iret: Integer; begin // E_TYPE 9009 long - - // E_CODE 9010 long - - // E_MSG 9011 string - - // E_TMP 9012 long - - types := fbgetvals(a, fbget_fldkey('e_type'), 0); codes := fbgetvals(a, fbget_fldkey('e_code'), 0); msgs := fbgetvals(a, fbget_fldkey('e_msg'), 0); tmps := fbgetvals(a, fbget_fldkey('e_tmp'), 0); ShowMessage('Error Type : ' + types + ',Code : ' + codes + ',Message : ' + msgs + ',Tmp : ' + tmps); end; Tmax 4GL Programming Guide

183 demo.f DataBase EMP Table EMPNO NUMBER NOT NULL P1 ENAME VARCHAR(16) JOB VARCHAR(16) MGR NUMBER HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER Tmax 4GL Programming Guide

184 emp_c.pc Tmax 4GL Programming Guide

185 Tmax 4GL Programming Guide

186 Tmax 4GL Programming Guide

187 Tmax 4GL Programming Guide

188 Tmax 4GL Programming Guide

189 Tmax 4GL Programming Guide

190 } Tmax 4GL Programming Guide

191 emp_c.mk Tmax 4GL Programming Guide

192 tmconfig.m *DOMAIN dom1 *NODE tmax1 *SVRGROUP svg1 *SERVER emp_c *SERVICE FDLSELECT FDLUPDATE FDLDELETE FDLINSERT SHMKEY=70000, MAXUSER=200, MINCLH=1, MAXCLH=5, TPORTNO=8888, BLOCKTIME=200, TXTIME=200 TMAXDIR="/home/tmax", APPDIR="/home/tmax/appbin", PATHDIR="/home/tmax/path", TLOGDIR= "/home/tmax/log/tlog", SLOGDIR="/home/tmax/log/slog" ULOGDIR="/home/tmax/log/ulog" NODENAME=tmax1, DBNAME=ORACLE, OPENINFO="ORACLE_XA+Acc=P/scott/tiger+SesTm=60", TMSNAME = svg1_tms SVGNAME=svg1, MIN=1 SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c Tmax 4GL Programming Guide

193 IV. Visual Basic.net Tmax 4GL Programming Guide

194 1... atmi.vb : atmi fdl.vb : TmaxMacros.vb : WinApi.vb : windows Tmax. atmi Tmax Reference Manual Tmax Programming Guide.. Tmax 4GL Programming Guide

195 2. ErrorMsg Public Shared Function ErrorMsg (ByVal pbuffer As Integer, ByVal msg As String) As Integer TmaxMacros.vb. fieldkey STATLIN tpurcode MsgBox. msg MsgBox. pbuffer : msg : Dim lsndbuf, lrcvbuf As Integer Dim rlen, lret As Integer lret = tpcall("fdltoupper", lsndbuf, 0, lrcvbuf, rlen, TPNOFLAGS) If lret < 0 Then ErrorMsg(lrcvbuf, "FDLTOUPPER") End If integer : -1. FdlErrorMsg Tmax 4GL Programming Guide

196 FdlErrorMsg Public Shared Function FdlErrorMsg(ByVal msg As String) As Integer fdl. msg MsgBox. msg : Dim lsndbuf As Integer Dim lret As Integer lret = fbput(lsndbuf, fbget_fldkey("input"), txtsmallf.text, txtsmallf.textlength) If lret < 0 Then FdlErrorMsg("fbput") End If integer : -1. ErrorMsg Tmax 4GL Programming Guide

197 PUTINT Public Shared Function PUTINT(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Integer) As Integer Tmax fdl fbchg_tu() nth fldname value. value Integer. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Integer Dim lsndbuf As Integer Dim lret As Integer Dim tempi As Integer lsndbuf = fballoc(10, 100) tempi = CInt(txtInt.Text) lret = PUTINT(lsndbuf, "INTDATA", 2, tempi) If lret < 0 Then error processing End If integer : -1. PUTLONG, PUTDOUBLE, PUTFLOAT, PUTSHORT, PUTCAR3, PUTVAR, PUTCHR Tmax 4GL Programming Guide

198 PUTLONG Public Shared Function PUTLONG(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Long) As Integer Tmax fdl fbchg_tu() nth fldname value. valuelong. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Long Dim lsndbuf As Integer Dim lret As Integer Dim templ As Long lsndbuf = fballoc(10, 100) templ = CLong(txtLong.Text) lret = PUTLONG(lsndbuf, "LONGDATA", 2, templ) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTDOUBLE, PUTFLOAT, PUTSHORT, PUTCAR3, PUTVAR, PUTCHR Tmax 4GL Programming Guide

199 PUTDOUBLE Public Shared Function PUTDOUBLE(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Double) As Integer Tmax fdl fbchg_tu() nth fldname value. valuedouble. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Double Dim lsndbuf As Integer Dim lret As Integer Dim tempd As Double lsndbuf = fballoc(10, 100) tempd = CDbl(txtDouble.Text) lret = PUTDOUBLE(lsndbuf, "DOUBLEDATA", 2, tempd) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTLONG, PUTFLOAT, PUTSHORT, PUTCAR3, PUTVAR, PUTCHR Tmax 4GL Programming Guide

200 PUTFLOAT Public Shared Function PUTFLOAT(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Single) As Integer Tmax fdl fbchg_tu() nth fldname value. valuesingle. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : String Dim lsndbuf As Integer Dim lret As Integer Dim temps As Single lsndbuf = fballoc(10, 100) temps = CSng(txtSingle.Text) lret = PUTFLOAT(lsndbuf, "TAPE_SENT", 2, temps) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTLONG, PUTSHORT, PUTDOUBLE, PUTCAR3, PUTVAR, PUTCHR Tmax 4GL Programming Guide

201 PUTSHORT Public Shared Function PUTSHORT(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Short) As Integer Tmax fdl fbchg_tu() nth fldname value. valueshort. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Short Dim lsndbuf As Integer Dim lret As Integer Dim temps As Short lsndbuf = fballoc(10, 100) temps = CShort(txtShort.Text) lret = PUTSHORT(lsndbuf, "SUPER_NUM", 2, temps) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTLONG, PUTFLOAT, PUTDOUBLE, PUTCAR3, PUTVAR, PUTCHR Tmax 4GL Programming Guide

202 PUTCAR3 Public Shared Function PUTCAR3(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value() As Byte, _ ByVal len As Integer) As Integer Tmax fdl fbchg_tu() nth fldname value. value Byte array. binary. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Binary len : Binary Dim lsndbuf As Integer Dim lret As Integer Dim tempb() As Short Dim fs As FileStream Dim br As BinaryReader Dim FilePath As String lsndbuf = fballoc(10, 100) fs = New FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.None) br = New BinaryReader(fs) ReDim tempb(cint(fs.length)) br.read(tempbr, 0, CInt(fs.Length)) br.close() fs.close() lret = PUTCAR3(lsendbuf, "TP_BITMAP", 0, tempb, Cint(fs.Length)) If lret < 0 Then error processing End If Tmax 4GL Programming Guide

203 integer : -1. PUTINT, PUTLONG, PUTSHORT, PUTDOUBLE, PUTFLOAT, PUTVAR, PUTCHR Tmax 4GL Programming Guide

204 PUTVAR Public Shared Function PUTVAR(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByVal value As String) As Integer Tmax fdl fbchg_tu() nth fldname value. valuestring. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : String Dim lsndbuf As Integer Dim lret As Integer Dim temps As String lsndbuf = fballoc(10, 100) temps = txtstring.text lret = PUTVAR(lsndbuf, " FILENAME ", 2, temps) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTLONG, PUTSHORT, PUTDOUBLE, PUTFLOAT, PUTCAR3, PUTCHR Tmax 4GL Programming Guide

205 PUTCHR Public Shared Function PUTCHR(ByVal pfbuf As Integer, _ ByVal fldname As String, _ ByVal nth As Integer, _ ByRef value As Char, _ ByVal len As Integer) As Integer Tmax fdl fbchg_tu() nth fldname value. valuechar. fbchg_tu() (nth) (value),. pfbuf : tpalloc() fballoc() fldname : (pfbuf) nth : value : Char len Char Dim lsndbuf As Integer Dim lret As Integer Dim tempc As Char lsndbuf = fballoc(10, 100) tempc = New String("a").ToCharArray() lret = PUTCHR(lsndbuf, "CHR", 0, tempc(0), 1) If lret < 0 Then error processing End If integer : -1. PUTINT, PUTLONG, PUTSHORT, PUTDOUBLE, PUTFLOAT, PUTCAR3, PUTVAR Tmax 4GL Programming Guide

206 PUTCAR Public Shared Function PUTCAR(ByVal pbuffer As Integer, _ ByVal value As String, _ ByVal len As Integer) As Integer carray tpalloc(). PBuffer : tpalloc () Value : String Len : String Dim lsndbuf As Integer Dim rlet As Integer Dim temps As String lsndbuf = tpalloc( CARRAY,, 0) temps = txtstring.text lret = PUTCAR(lsndbuf, temps, temps.length) If lret < 0 Then MsgBox( PUTCAR fail [ & tpstrerror(gettperrno()) & ] ) End If integer : -1. GETCAR Tmax 4GL Programming Guide

207 PUTCAR2 Public Shared Function PUTCAR2(ByVal pbuffer As Integer, _ ByRef value() As Byte, _ ByVal len As Integer) As Integer binary tpalloc(). pbuffer : tpalloc() value : Binary len : Binary Dim lsndbuf As Integer Dim lret As Integer Dim tempb() As Short Dim fs As FileStream Dim br As BinaryReader Dim FilePath As String lsndbuf = tpalloc( CARRAY,, 0) fs = New FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.None) br = New BinaryReader(fs) ReDim tempb(cint(fs.length)) br.read(tempbr, 0, CInt(fs.Length)) br.close() fs.close() lret = PUTCAR2(lsendbuf, tempb, Cint(fs.Length)) If lret < 0 Then MsgBox( PUTCAR2 fail [ & tpstrerror(gettperrno()) & ] ) End If integer : -1. GETCAR2 Tmax 4GL Programming Guide

208 GETINT Public Shared Function GETINT(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Integer) As Integer Tmax fdl fbget_tu() fldname nth value. value Integer. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim tempi As Integer lsndbuf = fballoc(10, 100) lret = GETINT(lsndbuf, "INTDATA", 0, tempi) If lret < 0 Then error processing End If integer : -1. GETLONG, GETDOUBLE, GETFLOAT, GETSHORT, GETCAR3, GETVAR, GETCHR Tmax 4GL Programming Guide

209 GETLONG Public Shared Function GETLONG(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Long) As Integer Tmax fdl fbget_tu() fldname nth value. value Long. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim templ As Long lsndbuf = fballoc(10, 100) lret = GETINT(lsndbuf, "LONGDATA", 0, templ) If lret < 0 Then error processing End If integer : -1. GETINT, GETDOUBLE, GETFLOAT, GETSHORT, GETCAR3, GETVAR, GETCHR Tmax 4GL Programming Guide

210 GETDOUBLE Public Shared Function GETINT(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Double) As Integer Tmax fdl fbget_tu() fldname nth value. value Double. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim tempid As Double lsndbuf = fballoc(10, 100) lret = GETDOUBLE(lsndbuf, "DOUBLEDATA", 0, tempd) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETFLOAT, GETSHORT, GETCAR3, GETVAR, GETCHR Tmax 4GL Programming Guide

211 GETFLOAT Public Shared Function GETFLOAT(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Single) As Integer Tmax fdl fbget_tu() fldname nth value. value Single. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim temps As Single lsndbuf = fballoc(10, 100) lret = GETFLOAT(lsndbuf, "TAPE_SENT", 0, temps) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETDOUBLE, GETSHORT, GETCAR3, GETVAR, GETCHR Tmax 4GL Programming Guide

212 GETSHORT Public Shared Function GETSHORT(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Short) As Integer Tmax fdl fbget_tu() fldname nth value. value Short. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim temps As Short lsndbuf = fballoc(10, 100) lret = GETSHORT(lsndbuf, "SUPER_NUM", 0, temps) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETDOUBLE, GETFLOAT, GETCAR3, GETVAR, GETCHR Tmax 4GL Programming Guide

213 GETCAR3 Public Shared Function GETCAR3(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value() As Byte, _ ByRef len As Integer) As Integer Tmax fdl fbget_tu() fldname nth value. valuebyte array. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : len : Dim lsndbuf As Integer Dim lret As Integer Dim tempb() As Byte Dim len As Integer lsndbuf = fballoc(10, 100) lret = GETCAR3(lsndbuf, "TP_BITMAP", 0, tempb, len) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETDOUBLE, GETFLOAT, GETSHORT, GETVAR, GETCHR Tmax 4GL Programming Guide

214 GETVAR Public Shared Function GETVAR(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As String) As Integer Tmax fdl fbget_tu() fldname nth value. value String. pfbuf : tpalloc() fballoc() fldname : (pfbuf). nth : value : Dim lsndbuf As Integer Dim lret As Integer Dim temps As String lsndbuf = fballoc(10, 100) lret = GETVAR(lsndbuf, "FILENAM", 0, temps) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETDOUBLE, GETFLOAT, GETSHORT, GETCAR3, GETCHR Tmax 4GL Programming Guide

215 GETCHR Public Shared Function GETCHR(ByVal pfbuf As Integer, _ ByRef fldname As String, _ ByVal nth As Integer, _ ByRef value As Char, _ ByRef len As Integer) As Integer Tmax fdl fbget_tu() fldname nth value. value CARRAY. GETVAR STINGCARRAY. CARRAY Len. STRING NULL. PFBUF : tpalloc() fballoc() fldname : (pfbuf). Nth : Value : Len : Dim lsndbuf As Integer Dim lret As Integer Dim tempc As Char Dim len As Integer lsndbuf = fballoc(10, 100) lret = GETCHR(lsndbuf, "CHR", 0, tempc, len) If lret < 0 Then error processing End If integer : -1. GETINT, GETLONG, GETDOUBLE, GETFLOAT, GETSHORT, GETCAR3, GETVAR Tmax 4GL Programming Guide

216 GETCAR Public Shared Function GETCAR(ByVal pbuffer As Integer, _ ByRef value As String, _ ByVal len As Integer) As Integer String tpalloc(). pbuffer : tpalloc() value : len : Dim lsndbuf As Integer Dim lret As Integer Dim temps As String lsndbuf = tpalloc( STRING,, 0) lret = GETCAR(lrcvbuf, temps, 10) If lret < 0 Then error processing End If integer : -1. PUTCAR Tmax 4GL Programming Guide

217 GETCAR2 Public Shared Function GETCAR2(ByVal pbuffer As Integer, _ ByRef value() As Byte, _ ByVal len As Integer) As Integer Binary tpalloc(). pbuffer : tpalloc() value : len : Dim lsndbuf As Integer Dim lret As Integer Dim tempb() As Byte lsndbuf = tpalloc( STRING,, 0) lret = GETCAR2(lrcvbuf, tempb, 1024) If lret < 0 Then error processing End If integer : -1. PUTCAR2 Tmax 4GL Programming Guide

218 FilltpstartBuf Public Shared Function FilltpstartBuf(ByVal pbuffer As Integer, _ ByVal startinfop As tpstart_t) As Integer Tmax tpstart_t. pbuffer : tpalloc() startinfo : tpstart_t Dim lsndbuf As Integer Dim lret As Integer Dim cinfo As tpstart_t lsndbuf = tpalloc("tpstart", "", 0) If lsndbuf = 0 Then error processing End If cinfo.cltname = "tmax" + Chr(0) cinfo.usrname = "tmax" + Chr(0) cinfo.dompwd = "xamt" + Chr(0) cinfo.usrpwd = "batman" + Chr(0) cinfo.flags = TPUNSOL_HND lret = FilltpstartBuf(lsndbuf, cinfo) If ret < 0 Then error processing End If ret = tpstart(lsndbuf) If ret < 0 Then error processing End integer : Tmax 4GL Programming Guide

219 3. Visual Basic.NET Sample account id,,,. : atmi.vb, fdl.vb, TmaxMacros.vb, WinAPI.vb. *** VB.net *** AssemblyInfo.vb CodeFile1.vb EmployeeGrid.resx EmployeeGrid.vb :. EmployeeMgr.resx EmployeeMgr.sln EmployeeMgr.suo EmployeeMgr.vb : Main.,,,. EmployeeMgr.vbproj EmployeeMgr.vbproj.user TmaxMacros.vb WinAPI.vb atmi.vb fdl.vb *** *** emp_c.mk : Makefile. emp_c.pc :. AIXOracle 9i. employee.m : Tmax *** *** demo.f : Field key bufferr. tmax. Option Explicit ' ' Private Sub BtnReturn_Click() Hide EmployeeMgr.Show End Sub ' Click ' Private Sub Form_Activate() ' tpstart ' Tmax 4GL Programming Guide

220 tmaxstart Dim Isendbuf As Long Dim Irecvbuf As Long Dim Irbuflen As Long Dim Iret As Integer Dim text As String Dim value As Long Dim dvalue As Double Dim svalue As Single Dim lenl As Long Dim inits, outputs As String Dim empnos, enames, jobs, mgrs, dates, sals, comms, deptnos As String Dim cntl As Long Dim eno As Long Dim txbool As Integer ' 1, 0 ' ' tpstart ' tmaxstart ' ' txbool = 0 inits = vbcrlf & vbtab & vbtab & vbtab & "***** *****" & vbcrlf & vbtab & "=========================================================" & vbcrlf & vbtab & " COMM " & vbcrlf & vbtab & "=========================================================" & vbcrlf & vbcrlf If EmployeeMgr.EditEmpNo.text = "" Then MsgBox "." Hide EmployeeMgr.Show Exit Sub End If ' ' Isendbuf = fballoc(100, 1024) If Isendbuf = Null Then TmaxError ("fballoc") Call fbfree(isendbuf) tmaxend Exit Sub End If ' ' Tmax 4GL Programming Guide

221 Irecvbuf = fballoc(100, 1024) If Irecvbuf = Null Then TmaxError ("fballoc") Call fbfree(irecvbuf) tmaxend Exit Sub End If '. eno = Trim(EmployeeMgr.EditEmpNo.text) Iret = fbput(byval Isendbuf, ByVal fbget_fldkey("empno"), eno, ByVal lenl) If Iret = -1 Then Call ExitSub(txbool, Isendbuf, Irecvbuf) End If ' ' Iret = tpcall(byval "FDLSELECT", ByVal Isendbuf, ByVal 0, Irecvbuf, Irbuflen, ByVal 0) If Iret = -1 Then ViewErr (Irecvbuf) Call ExitSub(txbool, Isendbuf, Irecvbuf) End If cntl = fbkeyoccur(byval Irecvbuf, ByVal fbget_fldkey("empno")) Dim i As Long For i = 0 To cntl - 1 Iret = GETLONG(ByVal Irecvbuf, "EMPNO", i, value) If Iret = -1 Then TmaxError ("GETLONG(EMPNO)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If empnos = value Iret = GETVAR(ByVal Irecvbuf, "ENAME", i, text) If Iret = -1 Then TmaxError ("GETVAR(ENAME)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If enames = text Iret = GETVAR(ByVal Irecvbuf, "JOB", i, text) If Iret = -1 Then TmaxError ("GETVAR(JOB)") Call ExitSub(txbool, Isendbuf, Irecvbuf) Tmax 4GL Programming Guide

222 End If jobs = text Iret = GETLONG(ByVal Irecvbuf, "MGR", i, value) If Iret = -1 Then TmaxError ("GETLONG(MGR)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If mgrs = value Iret = GETVAR(ByVal Irecvbuf, "DATE", i, text) If Iret = -1 Then TmaxError ("GETVAR(DATE)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If dates = text ' SAL float. ' ' comm.bas. ' Iret = fbget_tu(byval Irecvbuf, ByVal fbget_fldkey("sal"), i, svalue, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If sals = svalue Iret = GETFLOAT(ByVal Irecvbuf, "COMM", i, svalue) If Iret = -1 Then TmaxError ("GETFLOAT(COMM)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If comms = svalue Iret = GETLONG(ByVal Irecvbuf, "DEPTNO", i, value) If Iret = -1 Then TmaxError ("GETLONG(DEPTNO)") Call ExitSub(txbool, Isendbuf, Irecvbuf) End If deptnos = value & vbcrlf outputs = outputs & " " & empnos & vbtab & enames & vbtab & jobs & vbtab & mgrs & vbtab & dates & vbtab & sals & vbtab & comms & vbtab & deptnos Next i InfoText.text = inits & outputs Tmax 4GL Programming Guide

223 ' ' LabelErr.Caption = "SAL = " & dvalue Call ExitSub(txbool, Isendbuf, Irecvbuf) End Sub Private Sub ExitSub(txbool As Integer, Isendbuf As Long, Irecvbuf As Long) If txbool = 1 Then tx_rollback End If ' ' Call fbfree(byval Isendbuf&) Call fbfree(byval Irecvbuf&) ' tpend ' tmaxend Exit Sub End Sub ' tpstart ' Private Sub tmaxstart() Dim ret As Integer '. ' ' atmi.bas. ' ' Declare Function tmaxreadenv Lib "TMAX4GL.DLL" (ByVal envfile As String, ByVal label As String) As Long ' ' Tmax Reference Manual. ' ret = tmaxreadenv("c:\tmax.env", "aix5l389") If ret < 0 Then TmaxError ("tmaxreadenv") Exit Sub End If ret = tpstart(byval 0&) If ret = -1 Then LabelErr.Caption = "tpstart error = " & gettperrno() TmaxError ("tpstart") Exit Sub Else LabelErr.Caption = "tpstart return value = " & ret & " tpstart success" End If Tmax 4GL Programming Guide

224 End Sub ' tpend ' Private Sub tmaxend() Dim ret As Integer ret = tpend() If ret = -1 Then LabelErr.Caption = "tpend error = " & gettperrno() TmaxError ("tpend") Exit Sub Else LabelErr.Caption = "tpreturn return value = " & ret End If End Sub ' ' Private Sub ViewErr(ByVal a As Long) 'E_TYPE 9009 long - - 'E_CODE 9010 long - - 'E_MSG 9011 string - - 'E_TMP 9012 long - - Dim typel As Long Dim codel As Long Dim msgs As String Dim tmpl As Long Dim Iret As Integer Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_type"), 0, typel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_code"), 0, codel, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If Iret = GETVAR(ByVal a, "E_MSG", 0, msgs) Iret = fbget_tu(byval a, ByVal fbget_fldkey("e_tmp"), 0, tmpl, 0) If Iret = -1 Then FdlErrorMsg ("fbget_tu") Exit Sub End If MsgBox ("Error Type : " & typel & ",Code : " & codel & ",Message : " & msgs & Tmax 4GL Programming Guide

225 ",Tmp : " & tmpl) End Sub - Tmax : tpstart_t - : FIELD KEY BUFFER fdlc fdl - : tpcall() - : Tms AutoTransaction - : FDLSELECT, FDLINSERT - : SVRGROUP Tmax 4GL Programming Guide

226 EmployeeMgr EmployeeMgr Caption= LabelErr Caption= BtnExit BtnIns BtnDel BtnUdt BtnSel EditName EditEmpNo EditDept EditComm EditSal EditDate EditMgr EditJob Caption= Caption= Caption= Caption= Caption= < > Tmax 4GL Programming Guide

227 < > EmployeeMgr.vb source Tmax 4GL Programming Guide

228 Tmax 4GL Programming Guide

229 Tmax 4GL Programming Guide

230 Tmax 4GL Programming Guide

231 Tmax 4GL Programming Guide

232 Tmax 4GL Programming Guide

233 Tmax 4GL Programming Guide

234 Tmax 4GL Programming Guide

235 Tmax 4GL Programming Guide

236 Tmax 4GL Programming Guide

237 EmployeeGrid EmployeeGrid Caption= ListTextBox MultiLine=True BtnReturn Caption= < > < > EmployeeGrid.frm Source Tmax 4GL Programming Guide

238 Tmax 4GL Programming Guide

239 Tmax 4GL Programming Guide

240 Tmax 4GL Programming Guide

241 Tmax 4GL Programming Guide

242 Tmax 4GL Programming Guide

243 Tmax 4GL Programming Guide

244 Tmax 4GL Programming Guide

245 Tmax 4GL Programming Guide

246 Tmax 4GL Programming Guide

247 Tmax 4GL Programming Guide

248 Tmax 4GL Programming Guide

249 Tmax 4GL Programming Guide

250 demo.f DataBase EMP Table EMPNO NUMBER NOT NULL P1 ENAME VARCHAR(16) JOB VARCHAR(16) MGR NUMBER HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER Tmax 4GL Programming Guide

251 emp_c.pc Tmax 4GL Programming Guide

252 Tmax 4GL Programming Guide

253 Tmax 4GL Programming Guide

254 Tmax 4GL Programming Guide

255 Tmax 4GL Programming Guide

256 Tmax 4GL Programming Guide

257 } Tmax 4GL Programming Guide

258 emp_c.mk Tmax 4GL Programming Guide

259 tmconfig.m *DOMAIN dom1 *NODE tmax1 *SVRGROUP svg1 *SERVER emp_c *SERVICE FDLSELECT FDLUPDATE FDLDELETE FDLINSERT SHMKEY=70000, MAXUSER=200, MINCLH=1, MAXCLH=5, TPORTNO=8888, BLOCKTIME=200, TXTIME=200 TMAXDIR="/home/tmax", APPDIR="/home/tmax/appbin", PATHDIR="/home/tmax/path", TLOGDIR= "/home/tmax/log/tlog", SLOGDIR="/home/tmax/log/slog" ULOGDIR="/home/tmax/log/ulog" NODENAME=tmax1, DBNAME=ORACLE, OPENINFO="ORACLE_XA+Acc=P/scott/tiger+SesTm=60", TMSNAME = svg1_tms SVGNAME=svg1, MIN=1 SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c SVRNAME= emp_c Tmax 4GL Programming Guide

260 V. C#.net Tmax 4GL Programming Guide

261 1... Atmi.cs : atmi Fdl.cs : Tx.cs : WinApi.cs : windows TmaxApi.cs RQ, Tmax. atmi Tmax Reference ManualTmax Programing Guide C#. Tmax 4GL Programming Guide

262 2. C#.NET Sample,,,,,,,. 8 singleline editor1, 6., 50.,,,. 4GL_Sample.sln : Form1.csTmax Library client emp_c.pc : service (Oracle ) demo.f : Field Key Buffer emp_c.mk: Makefile tmconfig.m : Tmax - Tmax Library : Atmi.cs, Fdl.cs, Tx.cs, WinApi.cs, TmaxApi.cs - : FIELD KEY BUFFER fdlc fdl - : pb_tpcall() - :,,, - Tmax :,. - : FDLSELECT, FDLUPDATE, FDLDELETE, FDLINSERT - : SVRGROUP ( XA ) SVRGROUP Tmax 4GL Programming Guide

263 < > < > Tmax 4GL Programming Guide

Tmax COBOL Guide : TMCG : Tmax 3.8 : July 31, 2003 : Sep 20, 2003

Tmax COBOL Guide : TMCG : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax COBOL Guide : TMCG-0731-03-380 : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax COBOL Guide Tmax 3.8 Tmax COBOL Guide Tmax COBOL Guide Tmax COBOL Guide 1. 1.1... 7 1.2 Sample file... 8 1.2.1 Sample

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

Tmax FDL Reference Manual : TMFR : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003

Tmax FDL Reference Manual : TMFR : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003 Tmax FDL Reference Manual : TMFR-0702-08-380 : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003 Tmax FDL Reference Manual Tmax 3.8 1 2 Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights Reserved.,,, Tmax soft.,,,.....

More information

Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide

Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide Tmax Getting Started Guide : TMGS-0731-05-380 : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

JEUS WebT Copyright 2004 Tmax Soft Co., Ltd. All Rights Reserved.

JEUS WebT Copyright 2004 Tmax Soft Co., Ltd. All Rights Reserved. JEUS WebT Copyright 2004 Tmax Soft Co, Ltd All Rights Reserved Copyright Notice Copyright 2004 Tmax Soft Co, Ltd All Rights Reserved Tmax Soft Co, Ltd 946-1 18 )135-708 Restricted Rights Legend This software

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

CD-RW_Advanced.PDF

CD-RW_Advanced.PDF HP CD-Writer Program User Guide - - Ver. 2.0 HP CD-RW Adaptec Easy CD Creator Copier, Direct CD. HP CD-RW,. Easy CD Creator 3.5C, Direct CD 3.0., HP. HP CD-RW TEAM ( 02-3270-0803 ) < > 1. CD...3 CD...5

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

SMB_ICMP_UDP(huichang).PDF

SMB_ICMP_UDP(huichang).PDF SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

제목을 입력하세요.

제목을 입력하세요. 1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

Microsoft Word - Tmax Application Development Guide.doc

Microsoft Word - Tmax Application Development Guide.doc Tmax Application Development Guide Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved Copyright Notice Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

歯처리.PDF

歯처리.PDF E06 (Exception) 1 (Report) : { $I- } { I/O } Assign(InFile, InputName); Reset(InFile); { $I+ } { I/O } if IOResult 0 then { }; (Exception) 2 2 (Settling State) Post OnValidate BeforePost Post Settling

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

More information

목차 1. 환경변수 OS별환경변수설정 ESQL 시작 ESQL 프로그램생성젃차 오라클 Pro*C 젂환 Precompiler 변경 확장자 *.pc를 *.tbc로변경

목차 1. 환경변수 OS별환경변수설정 ESQL 시작 ESQL 프로그램생성젃차 오라클 Pro*C 젂환 Precompiler 변경 확장자 *.pc를 *.tbc로변경 개발및운영 Tibero ProC 전환및 Tmax 설정 2014. 05. 16. 목차 1. 환경변수... 3 1.1. OS별환경변수설정... 3 2. ESQL 시작... 4 2.1. ESQL 프로그램생성젃차... 4 3. 오라클 Pro*C 젂환... 5 3.1 Precompiler 변경... 5 3.2 확장자 *.pc를 *.tbc로변경... 5 3.3 티베로젂환시주의사항...

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

Javascript.pages

Javascript.pages JQuery jquery part1 JavaScript : e-mail:leseraphina@naver.com http://www.webhard.co.kr I.? 2 ......,,. : : html5 ; ; .

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & /

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & / SINUMERIK 840C Service and Uer Manual DATA SAVING & LOADING & & / / NC, RS232C /. NC NC / Computer link () Device ( )/PC / / Print erial Data input RS232C () Data output Data management FLOPPY DRIVE, FLOPPY

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper Windows Netra Blade X3-2B( Sun Netra X6270 M3 Blade) : E37790 01 2012 9 Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs,

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information

The_IDA_Pro_Book

The_IDA_Pro_Book The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86

More information

CPX-E-EC_BES_C_ _ k1

CPX-E-EC_BES_C_ _ k1 CPX-E CPX-E-EC EtherCAT 8071155 2017-07 [8075310] CPX-E-EC CPX-E-EC-KO EtherCAT, TwinCAT (). :, 2 Festo CPX-E-EC-KO 2017-07 CPX-E-EC 1... 4 1.1... 4 1.2... 4 1.3... 4 1.4... 5 1.5... 5 2... 6 2.1... 6

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

PowerPoint Presentation

PowerPoint Presentation Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------

More information

yessign Version 3.1 (yessign). ccopyright 2009 yessign ALL RIGHTS RESERVED

yessign Version 3.1 (yessign). ccopyright 2009 yessign ALL RIGHTS RESERVED yessign Version 3.1 (yessign). ccopyright 2009 yessign ALL RIGHTS RESERVED - - 2000. 8.29. 2000. 8.29. 2001. 7. 5. 2001. 7. 5. 2001.12.17. 2001.12.17. 2002. 3.12. 2002. 3.12. 2002. 8.21. 2002. 9. 5. 2002.12.27.

More information

Solaris Express Developer Edition

Solaris Express Developer Edition Solaris Express Developer Edition : 2008 1 Solaris TM Express Developer Edition Solaris OS. Sun / Solaris, Java, Web 2.0,,. Developer Solaris Express Developer Edition System Requirements. 768MB. SPARC

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

PRO1_09E [읽기 전용]

PRO1_09E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :

More information

uFOCS

uFOCS 1 기 : 기 UF_D_V250_002 기 기 기 품 ufocs 기 v2.5.0 히기기기기기기기기기 기 Manual 기 version 기 3.2 기품 2011.7.29 히기 345-13 1 Tel : 02-857-3051 Fax : 02-3142-0319 : http://www.satu.co.kr 2010 SAT information Co., Ltd. All

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

- - yessign Version 3.5 (yessign)

- - yessign Version 3.5 (yessign) - - yessign Version 3.5 (yessign). 2000. 8.29. 2000. 8.29. 2001. 7. 5. 2001. 7. 5. 2001.12.17. 2001.12.17. 2002. 3.12. 2002. 3.12. 2002. 8.21. 2002. 9. 5. 2002.12.27. 2003. 1.13. 2004. 3.31. 2004. 6.12.

More information

chapter4

chapter4 Basic Netw rk 1. ก ก ก 2. 3. ก ก 4. ก 2 1. 2. 3. 4. ก 5. ก 6. ก ก 7. ก 3 ก ก ก ก (Mainframe) ก ก ก ก (Terminal) ก ก ก ก ก ก ก ก 4 ก (Dumb Terminal) ก ก ก ก Mainframe ก CPU ก ก ก ก 5 ก ก ก ก ก ก ก ก ก ก

More information

Index Process Specification Data Dictionary

Index Process Specification Data Dictionary Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

Microsoft Word - Tmax Getting Started Guide.doc

Microsoft Word - Tmax Getting Started Guide.doc Tmax Getting Started Guide Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved Copyright Notice Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting Started 'OZ

More information

기타자료.PDF

기타자료.PDF < > 1 1 2 1 21 1 22 2 221 2 222 3 223 4 3 5 31 5 311 (netting)5 312 (matching) 5 313 (leading) (lagging)6 314 6 32 6 321 7 322 8 323 13 324 19 325 20 326 20 327 20 33 21 331 (ALM)21 332 VaR(Value at Risk)

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer Domino, Portal & Workplace WPLC FTSS Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer ? Lotus Notes Clients

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started (ver 5.1) 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting

More information

歯엑셀모델링

歯엑셀모델링 I II II III III I VBA Understanding Excel VBA - 'VB & VBA In a Nutshell' by Paul Lomax, October,1998 To enter code: Tools/Macro/visual basic editor At editor: Insert/Module Type code, then compile by:

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

UDP Flooding Attack 공격과 방어

UDP Flooding Attack 공격과 방어 황 교 국 (fullc0de@gmail.com) SK Infosec Co., Inc MSS Biz. Security Center Table of Contents 1. 소개...3 2. 공격 관련 Protocols Overview...3 2.1. UDP Protocol...3 2.2. ICMP Protocol...4 3. UDP Flood Test Environment...5

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT KEY EVENT & STATE 구현 2007. 1. 25 PLATFORM TEAM 정용학 차례 Key Event HS TASK UI TASK LONG KEY STATE 구현 소스코드및실행화면 질의응답및토의 2 KEY EVENT - HS TASK hs_task keypad_scan_keypad hs_init keypad_pass_key_code keypad_init

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

More information

1

1 04단원 컴퓨터 소프트웨어 1. 프로그래밍 언어 2. 시스템 소프트웨어 1/10 1. 프로그래밍 언어 1) 프로그래밍 언어 구분 각종 프로그래밍 언어에 대해 알아보는 시간을 갖도록 하겠습니다. 우리가 흔히 접하는 소프트웨어 들은 프로그래밍 언어로 만들어지는데, 프로그래밍 언어는 크게 2가지로 나눌 수 있습니다. 1 저급어 : 0과 1로 구성되어 있어, 컴퓨터가

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

휠세미나3 ver0.4

휠세미나3 ver0.4 andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$

More information

[ 융합과학 ] 과학고 R&E 결과보고서 뇌파를이용한곤충제어 연구기간 : ~ 연구책임자 : 최홍수 ( 대구경북과학기술원 ) 지도교사 : 박경희 ( 부산일과학고 ) 참여학생 : 김남호 ( 부산일과학고 ) 안진웅 ( 부산일과학고 )

[ 융합과학 ] 과학고 R&E 결과보고서 뇌파를이용한곤충제어 연구기간 : ~ 연구책임자 : 최홍수 ( 대구경북과학기술원 ) 지도교사 : 박경희 ( 부산일과학고 ) 참여학생 : 김남호 ( 부산일과학고 ) 안진웅 ( 부산일과학고 ) [ 융합과학 ] 과학고 R&E 결과보고서 뇌파를이용한곤충제어 연구기간 : 2013. 3. 1 ~ 2014. 2. 28 연구책임자 : 최홍수 ( 대구경북과학기술원 ) 지도교사 : 박경희 ( 부산일과학고 ) 참여학생 : 김남호 ( 부산일과학고 ) 안진웅 ( 부산일과학고 ) 장은영 ( 부산일과학고 ) 정우현 ( 부산일과학고 ) 조아현 ( 부산일과학고 ) 1 -

More information

歯MDI.PDF

歯MDI.PDF E08 MDI SDI(Single Document Interface) MDI(Multiple Document Interface) MDI (Client Window) (Child) MDI 1 MDI MDI MDI - File New Other Projects MDI Application - MDI - OK [ 1] MDI MDI MDI MDI Child MDI

More information

5.스택(강의자료).key

5.스택(강의자료).key CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.

More information

JMF2_심빈구.PDF

JMF2_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory : #2 (RAD STUDIO) In www.devgear.co.kr 2016.05.18 (Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory : hskim@embarcadero.kr 3! 1 - RAD, 2-3 - 4

More information

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph 인터그래프코리아(주)뉴스레터 통권 제76회 비매품 News Letters Information Systems for the plant Lifecycle Proccess Power & Marine Intergraph 2008 Contents Intergraph 2008 SmartPlant Materials Customer Status 인터그래프(주) 파트너사

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

o o o 8.2.1. Host Error 8.2.2. Message Error 8.2.3. Recipient Error 8.2.4. Error 8.2.5. Host 8.5.1. Rule 8.5.2. Error 8.5.3. Retry Rule 8.11.1. Intermittently

More information

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2 유영테크닉스( 주) 사용자 설명서 HDD014/034 IDE & SATA Hard Drive Duplicator 유 영 테 크 닉 스 ( 주) (032)670-7880 www.yooyoung-tech.com 목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy...

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information