采用 TMySQLServer 和 TMySQLTable 访问 MySQL 数据库

1、建立TMySQLServer类对象,连接数据库

 
   oServer:= TMySQLServer():New(aMYSQL_CONN[1],aMYSQL_CONN[3],aMYSQL_CONN[4] )
   oServer:SelectDB(aMYSQL_CONN[2])
   oServer:Query("SET NAMES 'gbk';")
   oServer:Query("SET character_set_client=gbk;")
   oServer:Query("SET character_set_results=gbk;")

2、建立TMySQLTable类对象,并关联TMySQLServer的socket

   cComm := " SELECT ... FROM order1 ..."
   oDB_ORD1 := TMySQLTable():New(::oServer:nSocket, cComm , "order1", ::oServer)
   oDB_ORD1:Refresh()

3调用TXBrowse类对象的SetTMySQL()方法
   oBrw:SetTMySQL(@::oDB_ORD1)
   oBrw:bskip:=::oBrw:bskipper
   oBrw:bLDblClick := { || CURSORWAIT(), ::ORDER1_CHECK() ,::oBrw:REFRESHCURRENT() }

4、XBrowse排序
   ADD COLUMN TO XBROWSE ::oBrw  DATA ::oDB_ORD1:DATE ;
      COLOR COLOR_DATE  ;
      HEADER "订单日期" SIZE 90

   oCol:= ::oBrw:aCols[ 6 ]
   oCOL:bLClickHeader := {|r,c,f,o| ::XBR_ORDER( o ) }
   oCOL:AddResource( "B_SELECT" )
   oCOL:nHeadBmpNo := 1
   oCOL:nHeadBmpAlign := AL_LEFT

5编辑并保存列值

   ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:REMARK ;
      COLOR COLOR_RMK ;
      HEADER "备注" SIZE 160

   oCol:= ::oBrw:aCols[ 22]
   oCol:bEditValue := { || ::oDB_ORD1:REMARK }
   oCol:nEditType := EDIT_GET
   oCol:cEditPicture := "@!"
   oCol:bOnPostEdit := { |o, v, n| ::oDB_ORD1:REMARK := v, ::oDB_ORD1:SAVE(), ::oBrw:Refresh() }


例子:

 
CLASS TORDER_CHECK
   DATA  oBrw
   DATA  oServer
   DATA  oDB_ORD1

   METHOD  New() CONSTRUCTOR
   METHOD  XBR_ORDER(oCol)
ENDCLASS

METHOD NEW() CLASS TORDER_CHECK
   LOCAL   cComm

   ::oServer:= TMySQLServer():New(aMYSQL_CONN[1],aMYSQL_CONN[3],aMYSQL_CONN[4] )
   ::oServer:SelectDB(aMYSQL_CONN[2])
   ::oServer:query("SET NAMES 'gbk' ;")
   ::oServer:query("SET character_set_client=gbk ;")
   ::oServer:query("SET character_set_results=gbk ;")
...
   cComm := " SELECT ... FROM order1 ..."
   ::oDB_ORD1 := TMySQLTable():New(::oServer:nSocket, cComm , "order1", ::oServer)
   ::oDB_ORD1:Refresh()
...
   DEFINE DIALOG oDlg RESOURCE "D_ORDER_CHECK"  ;
      TITLE "客户订单审单系统--全萤幕"
...
   REDEFINE COLUMN XBROWSE ::oBrw  ID 201  OF oDlg ;
     MESSAGE "客户订单审单系统--全萤幕" ;
     ON CLICK ( oREC:REFRESH() ) ;
     UPDATE
...
   ::oBrw:SetTMySQL(@::oDB_ORD1)
   ::oBrw:bskip:=::oBrw:bskipper
   ::oBrw:bLDblClick := { || CURSORWAIT(), ::ORDER1_CHECK() ,::oBrw:REFRESHCURRENT() }
...
   ADD COLUMN TO XBROWSE ::oBrw  DATA ::oDB_ORD1:DATE ;
      COLOR COLOR_DATE  ;
      HEADER "订单日期" SIZE 90

   oCol:= ::oBrw:aCols[ 6 ]
   oCOL:bLClickHeader := {|r,c,f,o| ::XBR_ORDER( o ) }
   oCOL:AddResource( "B_SELECT" )
   oCOL:nHeadBmpNo := 1
   oCOL:nHeadBmpAlign := AL_LEFT
...
   ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:REMARK ;
      COLOR COLOR_RMK ;
      HEADER "备注" SIZE 160

   oCol:= ::oBrw:aCols[ 22]
   oCol:bEditValue := { || ::oDB_ORD1:REMARK }
   oCol:nEditType := EDIT_GET
   oCol:cEditPicture := "@!"
   oCol:bOnPostEdit := { |o, v, n| ::oDB_ORD1:REMARK := v, ::oDB_ORD1:SAVE(), ::oBrw:Refresh() }
...
   ::oDB_ORD1:End()
   ::oServer:Destroy()
RETURN Self



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值