[질문]VFP browse 상태 --> MYSQL > MySQL Tip

본문 바로가기
 

[질문]VFP browse 상태 --> MYSQL

페이지 정보

작성자 차동박 이름으로 검색 댓글 0건 조회 19,719회 작성일 05-12-27 20:31

본문

새 페이지 7
[질문]VFP browse 상태 --> MYSQL 박일석 / moodie
박일석님께 메시지 보내기 박일석님을 내 주소록에 추가합니다. 박일석님의 블로그가 없습니다
 
remote view로는 cursor상의 데이타(vfp)를 변환하거나 추가하면
server의 Mysql로 동작되는 것은 확인 했습니다.

좀 어리석은 질문인지 몰라도

다음과 같이 sql_connet상으로 연결하여 browse상에서 수정하면
서버에 반영되지 않습니다.
무엇이 잘못된건가요 아니면 하나하나 sql 구문으로 변환하지 않으면
않되는 것입니까?

보시다시피 여러가지 속성을 바꿔봐도 않되니 답답하네요...

고수님 속시원한 답변 부탁드립니다. ^^;


**********************************************************
STORE SQLCONNECT("Local", "root") TO gnConnHandle
= SQLSETPROP(gnConnHandle, "Transactions", 2)
= SQLSETPROP(gnConnHandle, "asynchronous", .F.)
= SQLEXEC(gnConnHandle, "SELECT * FROM Mytable", "myview")
= CursorSetProp("Buffering",5)

browse


= SQLCOMMIT(gnConnHandle)
*= SQLEXEC(gnConnHandle, "FLUSH PRIVILEGES", "myview")
=Tableupdate(.T.,.T.)
= SQLDISCONNECT(gnConnHandle)
close all
***********************************************************
 
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-04 오후 7:08:48 / 번호: 7082 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
sop_0.gif Re: SPT로 가져온 자료는 실시간 갱신이 되지 않습니다. 윤준흠 / Godseye
윤준흠님께 메시지 보내기 윤준흠님을 내 주소록에 추가합니다. 윤준흠님의 블로그 가기
 
안녕하세요.
님께서 구현하시방법으로 실시간 UPDATE가 적용이 되지 않습니다.
일단 MYVIEW UPDATE CURSOR에서 DELETE, UPDATE, INSERT가 모두
가능하지만 그것이 SERVER DATABASE에 바로 적용이 되지는 않습니다.
결국에 다시 INS..,UP..,DEL..적용시 MYVIEW에 적용시키신후
SERVER SIDE로 해당 명령어를 보내어 서버테이타도 변경을 시켜 주셔야
합니다. 또한 SQLCOMMIT(핸들값)은 Transaction시 사용하는 명령어 입니다.

아울러 실시간으로 INS.., UP.. ,DEL...를 바로 적용시키시려면
RemoteView를 이용하십시요. 하지만 속도문제 및 여타따이따이의
문제가 많아서 결코 추천하지는 않습니다.

폭시사랑
 
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-05 오후 8:03:44 / 번호: 7094 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
Re: 그러면 실시간으로 하려면 어찌해야나요? 안성모 / sumu
안성모님께 메시지 보내기 안성모님을 내 주소록에 추가합니다. 안성모님의 블로그가 없습니다
 
중간에 끼어 들어서 윤고수께 질문 드립니다.

만일 서버의 데이터가 수정/추가/삭제된 경우 현재 접속하고 있는 모든 클라이언트의 관련 내용이 강제로
갱신하게 하고 싶으면 윤고수님 께서는 어떤 방법을 사용하시겠습니까?

고견을 기다립니다.
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-06 오후 12:02:03 / 번호: 7101 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
sop_0.gif Re: 첨부파일 있음답변임다 ^^;; 윤준흠 / Godseye
윤준흠님께 메시지 보내기 윤준흠님을 내 주소록에 추가합니다. 윤준흠님의 블로그 가기
 
안녕 하세여. 조금 긴 글이 될거 같습니다.
먼저 제가 올려드린 다큐멘테이션(화면이미지)부분을 보시면 폼툴바기능중에서 빨간 동굴뱅이
그림 있져... 그부분이 서버 데이타를 Requery해오는 부분입니다. 전 모든 기능을 Remote View(RV)가
아닌 SPT로 구현을 했습니다.(사실 대단한것은 절대 아닙니다. 하지만 RV보다 더 편합니다.)
하지만 단점(?)은 님께서 말씀하신 실시간 갱신이 이루어 지지 않는다는 점입니다. 하지만
여기에서 한가지 생각해 보아야 할점이 있습니다. 실시간 갱신이 얼만큼 필요 하느냐 하는
문제입니다. C/S 어플리케이션을 설계할때는 보통 이런 문제는 크게 이슈가 되지 않는 부분이기도 하구여.
단순하게 생각해보아도(일단 제가올린 화면이미지만을 가지고 볼때에) Helper가 특정 고객을 응대할때 또
다른 Helper는 절대
그 특정 고객과의 응대가 이루어 질 수 없습니다. 우리가 이런 일련의 상황을 인위적으로 만들어 내지
않는다면 말입니다. 곧 1:1 개념이라는 것이죠. 곧 다른 거의 모든 업무도 이와 마찬가지 일겁니다.
물론 ORDER를 내야하는데 아이템이 많을경우 몇사람이 동시에 한 오더를 입력 할 수도 있을겁니다.
이럴경우에는 운용의 묘를 살리면 얼마든지 커버가 됩니다. 일단 100개의 아이템을 입력한다고
가정했을경우 서로 중복되지 않게 입력자들이 나누어서 입력 시키신후 Requery만 한번 해 주면 된다는
것이져. 지금까지 짧은(?) 저의 업무경험으로 보았을경우 그 부분은 큰 비중이 되지 않았습니다.
하지만 죽어도 실시간 갱신이 되어야 한다면 2가지 방법을 생각해 볼 수 있습니다.

1.Remote View를 이용하는 방법입니다. 하지만 절대 추천안함다. 아마도 해보신 분들은 아실테지만
.... 머 거의 주금이져. 돌날아 올까바 여기 까정만.
2.SPT를 이용하돼 주기적으로(타이머를 이용해도 됨다) Requery를 자동으로 해 오는 겁니다.
RV를 써도 SET REPROCESS TO nAttempts [SECONDS]에 셋팅해준 시간이 되어야만 갱신이 되기에
그 시간만큼 SPT구현상에서 해주면 되는것이지여.


아래에는 현재 제가 구현한 SPT 코딩 방법론입니다.
간단하게나마 이해를 돕기 위해서 샘플로 올립니다. 현재 구현이 다 된 코딩이지만 이글을 오리면서
짜집기 한것이니 참고용으로만 이해해 주시면 됩니다. 그리고 제 Application Framework의 모체는 폭시의
샘플프로그램인 Tastrade입니다. 아울러 SPT이기 때문에 아시겠지만 제 폭시 DB를 열어보면 아무것도
없는 황량한 벌판임다 -_-;;

폼 LOAD절
DODEFAULT()

WAIT WIND "서버데이타 전송중입니다. 잠시만 기다립시요 !" NOWAIT

LOCAL lcAlias1, lcAlias2, lcAlias3, lcAlias4, lcAlias5,;
lcCursor3, lcCursor4, lcCursor5, lcCursor6, lcCursor7, ;
lcSql1, lcSql2, lcSql3, lcSql4, lcSql5, ;
lnRetVal1, lnRetVal2, lnRetVal3, lnRetVal4, lnRetVal5

lcAlias1 = "tpmcbd01" &&충전 마스터
lcAlias2 = "v_cgd01" &&고객마스터

lcAlias3 = "card" &&PPS CARD
lcAlias4 = "v_deposit" &&입금현황
lcAlias5 = "debit_info" &&사용현황 PPS SERVER Debit_info
lcAlias6 = "tpmccd01" &&불만현황
lcAlias7 = "tpmcbd01" &&보상현황
lcAlias8 = "tpmccd02" &&환불현황
lcAlias9 = "tpmcgd02" &&복수핀
lcAlias10 = "tpmcgd01" &&추천자현황
lcAlias11 = "tpmcfd01" &&AGENT
lcAlias12 = "tpmcfd02" &&AGENT별 담당자.

lcCursor3 = "cusppscard" &&PPS CARD TABLE INFORMATION
lcCursor4 = "cusDeposit" &&입금현황
lcCursor5 = "cusUseList" &&사용현황
lcCursor6 = "cusCompl" &&불만현황
lcCursor7 = "cusCompt" &&보상현황
lcCursor8 = "cusRefnd" &&환불현황
lcCursor10 = "cusRc" &&추천자현황
lcCursor13 = "cusmpcard" &&복수핀검색 PPS CARD

WITH ThisForm
*충전마스터
.SQLSelectField1
= "rcmang_id,cardid,serial,rc_date,rc_gubun,pay_method,amount,bonus_rate,bonus_amt,total_amt,dpbmang
_id,dpcmang_id,"
.SQLSelectField1 = .SQLSelectField1
+ "cpmang_id,rdepositor,agent_id,attn_id,usamount,tax,remark,before_amt,user_id"
*고객마스터
.SQLSelectField2
= "kname,jumin_no,age,mw,tel_no,bonus_rate,code_name,c_type,hp_no,joindate,chag_count,chag_total"
*카드정보
.SQLSelectField3
= "cardid,serial,agent,cardtype,rate_type,language,activedate,expirydate,status,cardvalue,unitsleft,
remark" &&PPS CARD
*입금현황
.SQLSelectField4
= "dpmang_id,dp_day,dp_method,methodname,dptype,bkctname,acct_no,jmapno,expiredate,rate,depositor,am
ount,usamount,use_amount,remainder,rate_money,real_money,cardid,user_name"
&&사용현황 PPS SERVER Debit_info
.SQLSelectField5
= "card_no,serial,start_time,end_time,dest_number,duration,Deducted,leg,channel,remote_id,dnis,ani"


** 충전마스터
lcSql1 = [SELECT ] + .SQLselectField1 + [ FROM ] + lcAlias1 + [ WHERE (cardid="XXXXXXXXXX")
ORDER BY rcmang_id]
lnRetVal1 = .csSqlServer.SqlExecute(gnConnHandle1, lcSql1, lcAlias1)

IF lnRetVal1 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF

** 고객마스터
lcSql2 = [SELECT ] + .SQLselectField2 + [ FROM ] + lcAlias2 + [ WHERE (cardid = "XXXXXXXXX")
ORDER BY cardid]
lnRetVal2 = .csSqlServer.SqlExecute(gnConnHandle1, lcSql2, lcAlias2)

IF lnRetVal1 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF

** PPSCARD
lcSql3 = [SELECT ] + .SQLselectField3 + [ FROM ] + lcAlias3 + [ WHERE (cardid = "XXXXXXXXXX")]
lnRetVal3 = .csSqlServer.SqlExecute(gnConnHandle2, lcSql3, lcCursor3)
IF lnRetVal3 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF

.DataEnvironment.InitialSelectedAlias = lcAlias1
ENDWITH
WAIT CLEAR

위의 부분에서 보시면 아시겠지만 굳이 저렇게 길게 코딩을 할 필요가 전여 없슴다.
시간에 쫒기다보니 OOP 및 구조적인 프로그램 구현 기법(?) 에 충실하지 못하게 구현이 되어서
그렇습니다. 여유가 되면 칼질을 해얍졉.


*신규자료 EVENTS
LPARAMETERS tlappendgubun

SELECT tpmcbd01
IF Thisform.DataChanged() AND thisform.AskToSave() = IDCANCEL
RETURN FILE_CANCEL
ENDIF

LOCAL lcRcGubun,;
lcPayMethod

WITH ThisForm
IF .chkLock1.Value = 1 &&충전구분
lcRcGubun = .cboRc_Gubun.Value
ENDIF
IF .chkLock2.Value = 1 &&입금방식
lcPayMethod = .cboPay_Method.Value
ENDIF
lnAutoKey = .AutoKey("TPMCBD01",DTOS(DATE()),3,gnConnHandle1) &&PARAMETERS tcTableId,
tcKeyDate, tnKeyLength, tnConnHandle
lcKey = ALLTRIM(Thisform.PkValue)
IF lnAutoKey < 0
RETURN
ENDIF
DODEFAULT()
IF .chkLock1.Value = 1
.cboRc_Gubun.Value = lcRcGubun
ELSE
.cboRc_Gubun.Value = "01"
ENDIF
IF .chkLock2.Value = 1 AND .cboRc_Gubun.Value <> "02" AND .cboRc_Gubun.Value <> "04"
.cboPay_Method.Value = lcPayMethod
ELSE
IF .cboRc_Gubun.Value <> "02" AND .cboRc_Gubun.Value <> "04"
.cboPay_Method.Value = "01"
ELSE
.cboPay_Method.Value = ""
ENDIF
ENDIF
.pgfRecharge.ActivePage = 1
.pgfRecharge.Enabled = .F.
.txtRcmang_id.Value = DTOS(DATE())+"R"+lcKey
.Requerycard(1,"")
.txtUser_id.Value = oApp.GetUserId()
.txtRc_Date.Value = DATETIME()
.txtCardid.SetFocus()
.chkTax.Value = .F.
ENDWITH


* 삭제 EVENTS
LOCAL lcRechargeId
lcRechargeId = ALLTRIM(ThisForm.txtRcMang_ID.Value)

IF EMPTY(lcRechargeId)
=MESSAGEBOX(SELECTDELETEDATA_LOC,0+16+0,AF_LOC)
RETURN .F.
ENDIF

afBaseForm::Delete("tpmcbd01",gnConnHandle1,[WHERE (rcmang_id = "]+lcRechargeId+[")])
ThisForm.pgfRecharge.Page9.SetFocus()


* 저장 EVENTS
LOCAL lnResult, llResult

llSave = .F.
lnSaveCheck = ThisForm.SaveValid()
IF lnSaveCheck = 0
*Sql Server Data Save
IF ThisForm.lisAdditing
lnResult = ThisForm.InsertData()
ELSE
IF !ThisForm.auth_update
=MESSAGEBOX(NOUPDATEAUTHORITY_LOC,16,AF_LOC)
ThisForm.Restore()
RETURN .F.
ENDIF
lnResult = ThisForm.UpdateData()
ENDIF
IF lnResult > 0
ThisForm.rAmount = 0
SELECT tpmcbd01
llSave = DODEFAULT()
IF llSave
* FoxPro Cursor Save Success
lcWhere = [WHERE (cardid="]+ThisForm.txtCardid.Value+[")]
Thisform.RequeryCard(3,lcWhere)
ThisForm.pgfRecharge.Enabled = .T.
ThisForm.cmdFormToolBar.cmdNew.SetFocus()
ENDIF
ELSE
llSave = .F.
ThisForm.txtCardid.SetFocus()
ENDIF
ELSE

DO CASE
CASE lnSaveCheck = 1
=MESSAGEBOX(RECHAGIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtrcmang_id.SetFocus()
CASE lnSaveCheck = 2
=MESSAGEBOX(RECHAGDATEINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtRc_Date.SetFocus()
CASE lnSaveCheck = 3
=MESSAGEBOX(CARDIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtCardid.SetFocus()
CASE lnSaveCheck = 4
=MESSAGEBOX(SERIALINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtSerial.SetFocus()
CASE lnSaveCheck = 5
=MESSAGEBOX(RECHAGGUBUN_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboRc_Gubun.SetFocus()
CASE lnSaveCheck = 6
=MESSAGEBOX(DPMETHODINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboPay_Method.SetFocus()
CASE lnSaveCheck = 7
=MESSAGEBOX(RECHAGAMOUNTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnAmount.SetFocus()
CASE lnSaveCheck = 8
=MESSAGEBOX(BONUSAMOUNTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnBonusAmount.SetFocus()
CASE lnSaveCheck = 9
=MESSAGEBOX(DPBMANGINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtDpbMang_Id.SetFocus()
CASE lnSaveCheck = 10
=MESSAGEBOX(DPCMANGINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtDpbMang_Id.SetFocus()
CASE lnSaveCheck = 11
=MESSAGEBOX(AGENTIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboAgent_Id.SetFocus()
CASE lnSaveCheck = 12
=MESSAGEBOX(ATTNIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboAttn_Id.SetFocus()
*!* CASE lnSaveCheck = 13
*!* =MESSAGEBOX(CPMANGIDINPUT_LOC, ;
*!* MB_ICONEXCLAMATION, ;
*!* AF_LOC)
*!* ThisForm.txtcpmang_id.SetFocus()
CASE lnSaveCheck = 14
=MESSAGEBOX(RECHAGTOTAMTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnTotal_Amt.SetFocus()
CASE lnSaveCheck = 15
=MESSAGEBOX(DEPOSIT_LOC+TRANSFORM(ThisForm.rAmount,"@R 9,999,999")
+WHITCH_LOC+RECHARGEAMT_LOC+TRANSFORM(ThisForm.spnAmount.Value,"@R 9,999,999")+IS_LOC+CHR(13)+;
RECHAMT_LOC+TRANSFORM(ThisForm.spnAmount.Value-ThisForm.rAmount,"@R
9,999,999")+BETTERAMT_LOC,;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnAmount.SetFocus()
ENDCASE
ENDIF
RETURN llsave


*저장시 신규데이타 서버사이드 INSERT METHOD

IF EMPTY(ThisForm.pgfRecharge.Page1.txtCardid.Value)
=MESSAGEBOX(CHECKCARDID_LOC, 16, AF_LOC)
RETURN -1
ENDIF

LOCAL lnResult

lcTableName = "tpmcbd01"
SELECT (lcTableName)

LOCAL lcRcMangID,lcRCDate,lcCardid,lcSerial,lcRcGubun,lcPayMethod,lnAmount,;
lnBonusRate,lcDpbMangid,lcDpcMangid,lcCpmangid,lnBonusAmount,lnBeforeAmount,;
lnTotalAmount,lnTax,lcRdepositor,lcUserid,lcAgentId,lcAgentName,lnUsAmount,lcRemark

WITH ThisForm
lcRcMangID = ALLTRIM(.txtRcMang_id.Value) &&충전관리번호
lcRCDate = TTOC(.txtRc_Date.Value) &&충전일자
lcCardid = ALLTRIM(.txtCardid.Value) &&PIN
lcSerial = ALLTRIM(.txtSerial.Value) &&SERIAL
lcRcGubun = ALLTRIM(.cboRc_Gubun.Value) &&충전구분
lcPayMethod = IIF(ISNULL(.cboPay_Method.Value) OR EMPTY(.cboPay_Method.Value),"NULL",ALLTRIM
(.cboPay_Method.Value)) &&입금방식
lnAmount = .spnAmount.Value &&금액
lnBonusRate = .spnBonus_Rate.Value &&보너스율
lcDpbMangid = IIF(ISNULL(.txtDpbMang_id.Value) OR EMPTY(.txtDpbMang_id.Value),"NULL",ALLTRIM
(.txtDpbMang_id.Value)) &&현입입금번호
lcDpcMangid = IIF(ISNULL(.txtDpcMang_id.Value) OR EMPTY(.txtDpcMang_id.Value),"NULL",ALLTRIM
(.txtDpcMang_id.Value)) &&카드입금번호
lcCpmangid = IIF(ISNULL(.txtCpMang_id.Value) OR EMPTY(.txtCpMang_id.Value),"NULL",ALLTRIM
(.txtCpMang_id.Value)) &&불만관리번호
lnBonusAmount = .spnBonusAmount.Value &&보너스금액
lnBeforeAmount = .txtBefore_Amt.Value &&충전전금액
lnTotalAmount = .spnTotal_Amt.Value &&충전총액
lnTax = IIF(ISNULL(.chkTax.Value) OR EMPTY(.chkTax.Value),0,1) &&세금계산서발행유무
lcRdepositor = IIF(ISNULL(.txtRdepositor.Value) OR EMPTY(.txtRdepositor.Value),"NULL",ALLTRIM
(.txtRdepositor.Value)) &&실입금자
lcUserid = ALLTRIM(.txtUser_Id.Value) &&충전자
lcAgentId = IIF(ISNULL(.cboAgent_Id.Value) OR EMPTY(.cboAgent_Id.Value),"NULL",ALLTRIM
(.cboAgent_Id.Value)) &&Agent ID
lcAttnid = IIF(ISNULL(.cboAttn_Id.Value) OR EMPTY(.cboAttn_Id.Value),"NULL",ALLTRIM
(.cboAttn_Id.Value)) &&Agent 담당자
lnUsAmount = .spnUsAmount.Value
lcRemark = IIF(ISNULL(.edtRemark.Value) OR EMPTY(.edtRemark.Value),"NULL",ALLTRIM
(.edtRemark.Value)) &&메모사항
ENDWITH

* PPS ORACLE SERVER CARD VALUE UPDATE
lcQuery = [UPDATE CARD SET unitsleft=unitsleft+]+TRANSFORM(lnTotalAmount)+[ WHERE (cardid="]
+lcCardId+[")]
lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle2,lcQuery,[])

IF lnResult > 0
lcQuery = [INSERT INTO ]+ lcTableName + ;
[ (rcmang_id,rc_date,cardid,serial,rc_gubun,pay_method,amount,]+;
[bonus_rate,dpbmang_id,dpcmang_id,cpmang_id,bonus_amt,]+;
[before_amt,total_amt,tax,rdepositor,user_id,agent_id,attn_id,usamount,remark) VALUES
(]+;
["]+lcRcMangId+[","]+lcRcDate+[","]+lcCardid+[","]+lcserial+[",]+;
["]+lcRcGubun+[",]+IIF(lcPaymethod="NULL","NULL",["]+lcPaymethod+["])+[,]+;
TRANSFORM(lnAmount)+[,]+TRANSFORM(lnBonusRate)+[,]+;
IIF(lcDpbMangid="NULL","NULL",["]+lcDpbMangid+["])+[,]+;
IIF(lcDpcMangid="NULL","NULL",["]+lcDpcMangid+["])+[,]+;
IIF(lcCpMangid="NULL","NULL",["]+lcCpMangid+["])+[,]+;
TRANSFORM(lnBonusAmount)+[,]+TRANSFORM(lnBeforeAmount)+[,]+;
TRANSFORM(lnTotalAmount)+[,]+TRANSFORM(lnTax)+[,]+;
IIF(lcRdepositor="NULL","NULL",["]+lcRdepositor+["])+[,]+;
["]+lcUserId+[",]+IIF(lcAgentId="NULL","NULL",["]+lcAgentId+["])+[,]+;
IIF(lcAttnid="NULL","NULL",["]+lcAttnId+["])+[,]+TRANSFORM(lnUsAmount)+[,]+;
IIF(lcRemark="NULL","NULL",["]+lcRemark+["])+[)]

lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle1,lcQuery,[])
ENDIF
RETURN lnResult


*저장시 신규데이타 서버사이드 UPDATE METHOD

LOCAL lnResult

lcTableName = "tpmcbd01"
SELECT (lcTableName)

LOCAL lcRcMangID,lcRCDate,lcCardid,lcSerial,lcRcGubun,lcPayMethod,lnAmount,;
lnBonusRate,lcDpbMangid,lcDpcMangid,lcCpmangid,lnBonusAmount,lnBeforeAmount,;
lnTotalAmount,lnTax,lcRdepositor,lcUserid,lcAgentId,lcAgentName,lnUsAmount,lcRemark

WITH ThisForm
lcRcMangID = ALLTRIM(.txtRcMang_id.Value) &&충전관리번호
lcRCDate = TTOC(.txtRc_Date.Value) &&충전일자
lcCardid = ALLTRIM(.txtCardid.Value) &&PIN
lcSerial = ALLTRIM(.txtSerial.Value) &&SERIAL
lcRcGubun = ALLTRIM(.cboRc_Gubun.Value) &&충전구분
lcPayMethod = IIF(ISNULL(.cboPay_Method.Value) OR EMPTY(.cboPay_Method.Value),"NULL",ALLTRIM
(.cboPay_Method.Value)) &&입금방식
lnAmount = .spnAmount.Value &&금액
lnBonusRate = .spnBonus_Rate.Value &&보너스율
lcDpbMangid = IIF(ISNULL(.txtDpbMang_id.Value) OR EMPTY(.txtDpbMang_id.Value),"NULL",ALLTRIM
(.txtDpbMang_id.Value)) &&현입입금번호
lcDpcMangid = IIF(ISNULL(.txtDpcMang_id.Value) OR EMPTY(.txtDpcMang_id.Value),"NULL",ALLTRIM
(.txtDpcMang_id.Value)) &&카드입금번호
lcCpmangid = IIF(ISNULL(.txtCpMang_id.Value) OR EMPTY(.txtCpMang_id.Value),"NULL",ALLTRIM
(.txtCpMang_id.Value)) &&불만관리번호
lnBonusAmount = .spnBonusAmount.Value &&보너스금액
lnBeforeAmount = .txtBefore_Amt.Value &&충전전금액
lnTotalAmount = .spnTotal_Amt.Value &&충전총액
lnTax = IIF(ISNULL(.chkTax.Value) OR EMPTY(.chkTax.Value),0,1) &&세금계산서발행유무
lcRdepositor = IIF(ISNULL(.txtRdepositor.Value) OR EMPTY(.txtRdepositor.Value),"NULL",ALLTRIM
(.txtRdepositor.Value)) &&실입금자
lcUserid = .txtUser_Id.Value &&충전자
lcAgentId = IIF(ISNULL(.cboAgent_Id.Value) OR EMPTY(.cboAgent_Id.Value),"NULL",ALLTRIM
(.cboAgent_Id.Value)) &&Agent ID
lcAttnid = IIF(ISNULL(.cboAttn_Id.Value) OR EMPTY(.cboAttn_Id.Value),"NULL",ALLTRIM
(.cboAttn_Id.Value)) &&Agent 담당자
lnUsAmount = .spnUsAmount.Value
lcRemark = IIF(ISNULL(.edtRemark.Value) OR EMPTY(.edtRemark.Value),"NULL",ALLTRIM
(.edtRemark.Value)) &&메모사항
ENDWITH

lcQuery = [UPDATE ]+ lcTableName + ;
[ SET rc_date="]+lcRcDate+[",]+;
[cardid="]+lcCardid+[",]+;
[serial="]+lcserial+[",]+;
[rc_gubun="]+lcRcGubun+[",]+;
[pay_method=]+IIF(lcPaymethod="NULL","NULL",["]+lcPaymethod+["])+[,]+;
[amount=]+TRANSFORM(lnAmount)+[,]+;
[bonus_rate=]+TRANSFORM(lnBonusRate)+[,]+;
[dpbmang_id=]+IIF(lcDpbMangid="NULL","NULL",["]+lcDpbMangid+["])+[,]+;
[dpcmang_id=]+IIF(lcDpcMangid="NULL","NULL",["]+lcDpcMangid+["])+[,]+;
[cpmang_id=]+IIF(lcCpMangid="NULL","NULL",["]+lcCpMangid+["])+[,]+;
[bonus_amt=]+TRANSFORM(lnBonusAmount)+[,]+;
[before_amt=]+TRANSFORM(lnBeforeAmount)+[,]+;
[total_amt=]+TRANSFORM(lnTotalAmount)+[,]+;
[tax=]+TRANSFORM(lnTax)+[,]+;
[rdepositor=]+IIF(lcRdepositor="NULL","NULL",["]+lcRdepositor+["])+[,]+;
[user_id="]+lcUserId+[",]+;
[agent_id=]+IIF(lcAgentId="NULL","NULL",["]+lcAgentId+["])+[,]+;
[attn_id=]+IIF(lcAttnid="NULL","NULL",["]+lcAttnId+["])+[,]+;
[usamount=]+TRANSFORM(lnUsAmount)+[,]+;
[remark=]+IIF(lcRemark="NULL","NULL",["]+lcRemark+["])+[,]+;
[ie_Date="]+TTOC(DATETIME())+["]+;
[ WHERE rcmang_id="]+lcRcMangId+["]

lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle1, lcQuery,[])
RETURN lnResult

*서버자료 Requery Method
LOAD절 응용하면 됩니다.


위의 부분이 일단 골자입니다. 그외 컨트롤부분은 Tastrade에 아주 잘 나와있구여.
코딩을 보시면 아시겠지만 마니마니 줄일 수 있습니다. 그건 나름대로의 경륜이겠지여. ^^;;

암튼 이자료가 도움이 되었으면 합니다.
 
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
   
2001-10-06 오후 12:20:00 / 번호: 7102 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
Re: 깔끔 그 자쳅니당... 유립 / eurip
유립님께 메시지 보내기 유립님을 내 주소록에 추가합니다. 유립님의 블로그가 없습니다
 
잘 계시죠?.. 행님!!!.... 유립임당...

저도 항상 C/S 만 했었는뎅...

REMOTE VIEW 가 좋긴 하지만. 소량의 데이타를 취급할 때는 금상첨화지만...

이놈의 데이타가 많이지믄.. 장난이 아니잖아요?... 그렇다고 프로그램 쓰면서 데이타가 많이지지 않기를
바라는 것도 말이 안되고....

저도.. 항상 SPT 만 썼었는뎅.....

딴건 코드가 넘 길어서리.. 못 보고.. 화면캡춰만 봤는뎅...

역쉬... 경륜이 느껴지는 깔끔함이었습니당...

고수가 되면 될수록.. 코드도 깔끔해지고.. 더불어.. 화면디자인도 깔끔해지는 것을 느낄수 있습니다요...

그 수많은 필드의 조합을 우찌 저렇게.. 색깔과 적절한 위치의 조합으로... 깔끔하게 만드셨는쥐....

역쉬... 최고의 고수입니다요.... ㅋㅋㅋ...

그라고.. 지송함당.. 지가 요즘.. 외도를 쪼매 하고 있어서리... 폭스를.. 잘 못 주무르고 있씁니다요..

간간이 시간날때마다.. 함 봄시렁.. 글을 올리도록 하겠슴당....

그럼.. 주말 잘 보내시고요...



아차.. 그라고.. 행님... 메신저있으믄.. 아뒤 갈카주십시요...

전 MSN 씁니다요.. DAUM 도 쓰고 DREAMWIZ 도 씁니다요..

DAUM하고 DREAMWIZ 는 아뒤가 eurip 이고

MSN 은 euripi@hotmail.com 입니다요..(어떤 놈이 eurip 을 쓰고 있어서... 끝에 i 자를 붙였습니다요..)

그럼.. 진짜로.. 이만...
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-06 오후 12:37:31 / 번호: 7103 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
Re: 깊이 있는 답변에 감사하며... 안성모 / sumu
안성모님께 메시지 보내기 안성모님을 내 주소록에 추가합니다. 안성모님의 블로그가 없습니다
 
자상하고 친절한 답변 감사드리고 아울러 윤고수님의 풍부한 경륜을 느꼈습니다.

>SPT를 이용하돼 주기적으로(타이머를 이용해도 됨다) Requery를 자동으로 해 오는 겁니다.
>RV를 써도 SET REPROCESS TO nAttempts [SECONDS]에 셋팅해준 시간이 되어야만 갱신이 되기에
>그 시간만큼 SPT구현상에서 해주면 되는것이지여.

제가 미처 님의 코드를 이해하지 못해서 "SPT를 이용한 주기적 자동 Requery" 구현부분이 보이지 않습니
다. 이 부분만 어떻게 구현하는지 구체적으로 좀 알려 주시면 고맙겠습니다.

그리고 혹시 서버마저 폭스로 해서 해보신 경험은 없으신가요. 있으시면 경험담 좀 들려 주십시오.

근데 여기 Q&A에서 글 올리신 분 점수주는 기능은 없습니까?
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-06 오후 12:52:53 / 번호: 7104 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
sop_0.gif Re: ^^;; 윤준흠 / Godseye
윤준흠님께 메시지 보내기 윤준흠님을 내 주소록에 추가합니다. 윤준흠님의 블로그 가기
 
유립고수의 칭찬 히 고마버...
7.0욜시미 분석하구 있지 ? 난 이번 프로젝트 7.0으로 바로 올렸다가
히 다시 6.0으로 뒷빠구 했지모. 실시간 돈하고 관련되다보니
흑 아직 검증이 않된 7.0에게 맡기기엔 넘 큰 모험(?)인거
같아서. 당장 Menu 생성기가 말썽을 피우자녀.
권한부분(SKIP)이 오류가 있자녀 그래서 미처 해보기도
전에 머 꼬랑쥐 살짝 저버자녀 ^^;;

난 주로 ICQ쓰구 히 알잔녀 이눔의 엠에스엔(히 엠에스 관계자분
화내겠당) 윗분들하고 예기하는 중에(미처 몬 껏을떄)
메세지나 로그인하면 뻘쭘뻘쭘 중간에 튀어나와서 이거
영 신경이 쓰여서 말야. 근데 흑 대세라서 아니 쓸수는 없구...
암튼 ICQ는 52018528이구 MSN은 Godseye@netsgo.com이여
글보구 msn바로 등록 시켰는데 off line이네 쩝~~

지난번 술을 넘 마니 머거짜녀 근데 혼자두고 온다음날
아니지 동범고수가 있어서 혼자는 아니였겠지만 암튼 아직도
마음이 안편혀~ 뭔가 꼭 죄지은 사람기분이랄까 미안혀이~~
글구 시간되면 얼굴함 보자 쓴 소주(?)잔이나 귀울이게...

주말 즐겁게 보내구...
 
 
 
이 글에 평점 주기: 0점 1점 ■ 2점 ■■ 3점 ■■■ 4점 ■■■■ 5점 ■■■■■ 6점 ■■■■■■ 7점 ■■■■■■■ 8점 ■■■■■■■■ 9점 ■■■■■■■■■
     
2001-10-06 오후 1:45:33 / 번호: 7105 / 평점: bullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gifbullet.gif (-)
Re: 혹시나 돔이 될까 해서리... 유립 / eurip
유립님께 메시지 보내기 유립님을 내 주소록에 추가합니다. 유립님의 블로그가 없습니다
 
안녕하심까?.. 유립임당....

중간에 엉뚱한 놈이 왜 끼냐고... 핀잔주지는 말아주십쇼...!!!

혹시나 도움이 될까해서리.. 간단하게.. 몇자 적습니다요...


"SPT를 이용한 주기적 자동 Requery"


부분은 구체적으로는 윤준흠시샵님의 글에는 있질 않습니다.

윤준흠시샵님의 글 제~~~~~~~~~~~~~~~~~~~~~~~~~~~일 밑 쯤에 보시믄

************************************
*서버자료 Requery Method
LOAD절 응용하면 됩니다.
************************************

라는 부분이 있습니다. 말 그대로 폼의 LOAD 절을 보시믄..

걍 폼이 LOAD 될때 서버에 있는 데이타를 걍.. SPT 로 가져오는거죠...(필드가 굉장히 많아서 복잡하게 보
일 뿐입니다...)

별거 없습니당... 걍.. "SELECT XXX1,XXX2,XXX3..... FROM XXX ~~~~" 하고

SqlExecute 같은 SPT 함수를

댓글목록

등록된 댓글이 없습니다.

Total 243건 7 페이지
MySQL Tip 목록
번호 제목 글쓴이 조회 날짜
135 차동박 이름으로 검색 17914 03-09
134 차동박 이름으로 검색 20832 03-05
133 차동박 이름으로 검색 25168 03-05
132 차동박 이름으로 검색 18347 03-05
131 차동박 이름으로 검색 22388 03-05
130 차동박 이름으로 검색 12767 02-14
129 차동박 이름으로 검색 18243 02-08
128 차동박 이름으로 검색 22549 02-08
127 차동박 이름으로 검색 18209 02-06
126 차동박 이름으로 검색 25491 02-06
125 차동박 이름으로 검색 18484 01-28
124 차동박 이름으로 검색 17731 01-05
123 차동박 이름으로 검색 17471 12-27
열람중 차동박 이름으로 검색 19720 12-27
121 차동박 이름으로 검색 21972 12-27
120 차동박 이름으로 검색 10722 12-27
119 차동박 이름으로 검색 21012 12-27
118 차동박 이름으로 검색 19295 12-27
게시물 검색