[질문]VFP browse 상태 --> MYSQL > 유익한 싸이트

본문 바로가기
 

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

페이지 정보

작성자 이름으로 검색 댓글 0건 조회 16,074회 작성일 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 224건 7 페이지
유익한 싸이트 목록
번호 제목 글쓴이 조회 날짜
116 이름으로 검색 8419 03-17
115 이름으로 검색 16185 03-09
114 이름으로 검색 14699 03-05
113 이름으로 검색 15990 03-05
112 이름으로 검색 15378 03-05
111 이름으로 검색 20075 03-05
110 이름으로 검색 9383 02-14
109 이름으로 검색 15032 02-08
108 이름으로 검색 19612 02-08
107 이름으로 검색 15219 02-06
106 이름으로 검색 15727 02-06
105 이름으로 검색 13317 01-28
104 이름으로 검색 8112 01-20
103 이름으로 검색 15309 01-05
102 이름으로 검색 13983 12-27
열람중 이름으로 검색 16075 12-27
100 이름으로 검색 18204 12-27
99 이름으로 검색 8454 12-27
게시물 검색