35
Visual FoxPro 9.0 y SqlServe r 200 5 DATA CAPAS 1- - ---. I I I 1 NE G O CI O I CO NEX IO N 1 IN T E RF AZ I I o . I I En es te diseño de capas se pu ede observar claramente que no exi ste una relación directa entre la capa interfaz Vla capa de dat os, para que dicha relación exista tiene que transitar a través de una capa de negocies V seguidamente de una capa conexión, esta última se comunica mediante los SP (S to re d Procedures) a la data, Ejemplos de código que van en dife re ntes capas la capa inte rfaz está basada en clases visuales de VFP, la de negocios en clase no visuales de VFPy para esta capa de tipo Ncustom", la de conexión también utili zará una clase no visualVFP de tipo "ses-ten" Vla de data será un Sq lS erver que puede s er 2000 o 200 S. Cabe resaltar que cualquiera de las capas puede ser ree mplazada por el tipo que uds. crean convenien te . Para el eje mplo te nemos un objeto de nego ci o ll amado "mtcbjetc" el cual tiene los siguie ntes todos: selecciona, inse rt a, edita, borra, revisa Vlas propied ades _ ali as, campo f. ca mpoz . cam poj. , Con lo cual te nd ríam os : Interface En nuestro formulario tenemos un todo refresca cr id [) , con un código similar: Thislorm,grda tal .recordsource=nn Thlsfcrm.miobje to.sele ccdc na () Thislorm,grda tal .recordsource=thislorm,miobj et o._al ias Página 1

Visual fox pro 9.0 y sqlserver 2005

Embed Size (px)

DESCRIPTION

Visual FoxPro 9.0 y SqlServer 2005 - Desprotegido - Se puede Imprimir

Citation preview

Page 1: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 200 5

DATA

CAPAS1- - ---.

I I

+~tI 1

NEG O CI O I CO N EX ION 1IN T ERFAZ

II

o .II

En es te diseño de cap as se puede obs ervar cla ramente que no existe una re lación directa

entre la capa interfaz V la capa de datos, pa ra que dicha relación exista tiene que transitar a

través de una capa de negocies V seguidamente de una capa conexión, es ta última se

comunica median te los SP (S tored Procedures) a la da ta,

Ejemplos de código que van en diferentes capas

l a cap a interfaz está basada en clases visuales de VFP, la de ne gocios en clase no visuales de

VFP y para esta capa de tipo Ncustom", la de conexión también utili zará una clase no visual VFP

de tipo "ses-ten" Vla de da ta será un SqlServe r que puede ser 2000 o 200S. Cabe resa ltar que

cua lquiera de las capas puede ser reemplazada por el tipo que uds. crean conveni en te.

Para e l ejemplo tenemos un obje to de ne gocio ll amado "mtc bje tc" e l cua l tiene los siguientes

métodos: selecciona, inse rta, edita, borra, revisa Vlas propiedades _alias, campof. campoz.

campoj. , Con lo cual tendríam os :

• Inte rface

En nues tro fo rmulario te nemos un méto do refrescacrid[) , con un código similar:

Thislorm,grdatal .recordsource=nn

Thlsfc rm.miobjeto. seleccdcna ()

Thislorm,grdatal .recordsource=thislorm,miobjeto._al ias

Página 1

Page 2: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

• Negocio

Este objeto tiene el méto do se lecciona, ruyo código se ría:

Cone.execsp("Mi_Stored_Procedure","7 paramt,7param2,

7param3", "mtcurscr"¡

This. aüas- vmtcursor"

• Conexión

Este objeto tiene un método execsp. su código te ndría que ser:

- sqlexeuncon.texecute ste red prccedure- par éme trcs","_w rsor" )

• Data

Es ta capa constará de dos parles {SP, Tablas):

o SP

@paraml as int

@param2 as int

@param3 as int

Select campo l , campcz. campea. campo4 fr om mitabla where

campox=@paraml and campoy=@~a ram2 and campo¡=@param3

o Tabla

l a labia se ll ama mitabla, con sus campos: campct. campoz, campea. campee.

campox. campov. carnpo z

Página 2

Page 3: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

CREANDO LA CAPA DE DATOS

DISEÑO DE TABLAS

' ~ Micro.oft SQL s.....~, M~n~g~m~nI Sludio I - e )(A" .......o Ed,tar v., Proy. cto D".,'í~do, d, t. bl~, D" 9r.m. <l. b ~!< d. doto, H, rr. ",.."t., V, ,,ton.

Comunid.d Ayuda

; X

IIrodudo -

.""

det o._Focturo

, ~ """

,~ent ec~be _FactlJl"~

• ,~. • ~ ''''~

~o ,~,

.~ '... '.o:,",,, ,~.

••

"l • ..,... (6 tAA lnuNÚ"[;o:;;;,<"="C"C9 o:I3~ 9C.C,c,[,=1I

.. L::;¡ BOl " d. d..o.

~ D:l B..., d. d. to, d<l"'w".~ Cil lnm ,," n'" M b.,,, <l. d' t M.. lJ ",i b." d. doto,

G.J [)i".I" m~' d. b. s< d. dato,

.. CJ h bl..

~ C;¡ T. l>I.. dd ,,",m.~ D dbo"I>.nt.~ D dbo,rob. _h et",.

~ D dbo,producto

~ D dbo,d"'. J.ctu..~ L;,¡ Vi ,,~,

~ CJ <;; " o mm o,

~ C3I Pm,,""'.'ion

~ d N" ",. comu~~ 1[)J 1ITi ti] [;) 1~ 1~ ':l!J r.!~ 1d " 1Bl E 1) lJ> ~ ..L

j Q tJ VI !3l " >" 1..:i 1 a~' 1V¡". d. t ,b lp I % ;~ .tj Ig _g '<::3 1J5%.

:/ M ANTUNEz: ;;" b ,;-...... - [),~g;~ ;., ._o 'l

Crearemos la siguien te base de da tos "mlbasededa tas". YIas tablas se rán las siguien tes :

Página 3

Page 4: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

clientecodcli int pknom cli varchar 50dircli va rchar Ote Icli cha r(10)

~ producto

lEErocod intpronom va rc har 50prounm ehar 1 )

ENTORNO Sa l SERVER 2005

cabe factura;d tact int k

"" f act char 10te e tect datetimeco dcli int ~

data factu ra;d dfact in t k

" t act int &proco int &cantidad numenc 12 3

re c¡o numenc 12 ,2total calcula do

J. th ,. " "' ,. " I Lj) t:.'i tñ tíl ' L:l¡ I ;!j f;!\i e¿~ 1nI (1 I~ ¡:;¡ f>l. tJ; ~ ~

; ' 1'M ", 'b","' d "'~ , , ' JO" ." ,,1 . ~:; IIIl. ,";. ¡ f" "J qMAJH 1INFI . ,II ...,~• .- 'Ql 0' ..' ' 1_~ 1 1

( 0 00" '" I ' 1 •• ~ MMiTUf-I,,,""n~'~OC"" " " """" . ''''' -'~

~ ~ 110,., ' , Jot. ,• CI Ro.., ... ~..ú,~.. ">l'''''.• C"¡ 'o,,. ,,",.., ... h." , ... ....o,• lJ ",, ~., <d.d.t>!

f t:..l D ,.~",»., ., b", ~, d""• C:l " N"

, ::;¡ l ..","" '¡'¡',,'.m.f f:.I v,," ,f Ci Sno"""",

f U P ,o ~''''''.'''on

• t:;.¡ Sm i" B.o~<o

~ Cl AIrn."","";"",,f ÜI """n.o

• r:;¡, 'i<9 1O 'ol .~

• CJ o"..", ., """I~ ,

:r. ' . " '~,>. ~ "

,

l " , Col 1 ( .. , ¡liS

Este será e l entorno de trabajo de nuestra capa de da tos:

DEFINIEN DO INDICE IDENTIDAD

Página 4

Page 5: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

....." . ,("')

v... , ' o' (oo)

" ",(l O)

,El ., ,,,,, I K.oo:~ ~e""""8 tspecl ",", oo~ tdorJtd ,¡

( Ijert~<d: "Irtrene r to !le ~erJl' 1

~."'---~~~~~='i~

I (Idonb dod)

'.

• Ii) MN .rr.N'I ISOl 0;." .. ,~ m, -"1• I:..l ¡;,,,, <l, o",,,,

~ Q ¡¡.,,'" rl, <l.,", " .. '''''''l'~ Q lo" "" "'.." .... b" "'<I. d..,,~ ti mib"• •i.d.,,,,

~ :;¡¡ r"' 9' '''''' d. N'" d. <4""• ::;¡ T.." .,

~ DI T"'-'1.. dd " ".",.

~ :;¡¡ h'"~ ::... ' ,"ú..mM

e ::..¡ f'"9"'''''''''"~ ::.¡ o;,.....,,,l'<ol .,

~ ::J Alm." m m ""o

• :::.. \ ' 9"",1. <1, C,¡ ""9,.<&.d

• t.t 0.".... 0.." ,,<1.,:r:.•, ,,'~~ _

<~ l' •ti,,,

Las ve ntajas de utilizar es te lipo de campo como NPrima ry Kev", t ien e muchas ve n tajas tanto

de libram os de pe nsa r, ¿co mo ha go mi programa de correts uvos >, y adem ás ayud a a l

performance de la base de dates ta nto al mome nto de graba r como al momento de ha cer la s

relaciones y b úsque das ya que e l índice ' Pnma rv Key" ta mbién es un índice t ipo cluster,

En el graflcc se ve como se ve la cre ación de la tabla y la definición del campo identid ad y e l

incremen lo e n este case de 1 en 1 y e mpieza en 1 el oo rrela ñvo.

En lo personal po ner un número pequeño como en este case a los dientes, fa ci lita el uso para

l o ~ usuertcs, e s má s prác tico re corda r números peq ueños que ce dlflcacíc nes con

pseudc codigos o procedrmtee tos complejos.

Alguno~ coma ndo s de u tilidad al manejar es te tip o de campes :

DIlCC C HECK IDE NT

't abl e~n ame'

1 , 1t/ORE5 E ED

,[ WI TH NO_ I NF OMS GS

E j e mp l o :DIlC C C HE;CK I DE; NT ( ' " l i e n~e ' , RES E E;D, 0 1 .

Pá gina 5

Page 6: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

R~5~t~~r~ ~ l c~mpo id~~t id~d ~ O .

IN S~ RT I NTO c li~nt~5

v ~lu~5

( 'Ju~n P ~ r~z ' , ' mi dir~ccion', ' 88 3 7 7 6 6 6' )

SEL~CT @@ID E NTI TY

Dicho "Selert" devolverá e l número de identidad aslgnadc.

DEFINIENDO íNDICES DE BÚSQUEDA

Ind,<~. o d;ovo. • •Ind,,, c> d av. P""" 'Y....Uno'l". "1. "' ~n3dó:

De d..",,' EM or p,op..d.d.. por. 01da" o i"dico UlJIQUE nu<vo.PK_d itn"

B (Gene..n •~5S'l' imn•• nomd , (AS()

E, Uniqll~ u,Topo Ind>c, ,

B Di.dí~dor ~.. t.bl. ,

~Joq" oo, do /¡I. I' , mlitido, ,~Jo q' '' o , de p.g ,na p"mmdo, s..e l", E, tM~ 'am ~I'N N.( a lumno> ,nd lll d.,

e ru, (orno elll'iTE RErt N.m E ' r '''¡'' ~oo " do" I'oc io do d, PPI~.tARY •

I 49" 9"' I I Ehmi" .. I I (m., I

Solo crear estos índices a campos de búsqueda mas frecuentes, no abusar de la delini ción de

campos índices ya que al flnal hace len to la grabación y la búsqueda. Para nuestro ejemplo

solo estamos creando el índice al nombre del cliente porque suponemos que se rá e l campo

por el cual rea lizaremos la búsqueda siempre y cuando no sabemos el cód igo.

Aquí un ejemplo para hacerlo vía sentencia :

CREATE 1l0 ll C L US TE RE D IN D~ X {IX_c l i ~n t ~ J 0 11 [ db o ] . [ c li ~ nt~]

¡ ! n o mc l i l AS C I

WIT H

¡ P A D_I II D ~X - OFF , S TATIS TICS_II0R~COHPUTE - O F F ,

SORT_ I N_ TE MPDB - OF F , IGN ORE _ DU P KEY - OF ~ , DROP _ E XISTII1G - O f' ~ .

ONLIN E - OF ~ , A LLOW_ROW LOCKS - ON . A L L OW_P AGE LO CK5 - 0 11 1

m.

Página 6

Page 7: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

[ PR IMA RY )

DEFI NI ENDO INDICES UNICOS

I n d i< l!'~ o ( l <l. wes '.'índ;<~ o d~ve Primory!lJniq.¡e .elecoomdo:

-'!:Ccati eJ .,(t ...--q Edtar propied.3des par~ el índice o rnve PrruaryfUniqJe ex&tente ,f'K_c~beJ~, t'Jf~

:~ ~Gen",ral) A

Column~; nroJ5I:t (A5e)

J:> u n~,,,,, Índo:e --

B Diseñador de tabla.

BIoqueo< de ~Ia permitidos ,Bloqueos de págm rtermitld' 51

C1~ve Es texto co~to ~

Columna> inclida<

Crear ce<no CLU5TERED ~

@ E>pec~o:ación_de ""pac O] de F'RIII'\AR Y r;;, .

I Agregar 1 ( Elimirm I I Corr<lr I

La utilid ad de este índk e es la d e con trola r duplicidad de da tos para n uestro ejemp lo ser á el

Número de fa ctu ra, ya qu e es un da to qu e no ten dría q ue re petirse ; ya se sabe q ue un índice

de tipo PK ya por defecto es de tipo "u nique".

Aquí el ejemplo vía sentencia :

CREATE UN I QUE NOtl CLUSTERE D Itl DEX [ I X_c ~be_f ~c t u r ~ l ON[ dbo l ·lc~be_f~c tur~ l

( I n r o_ f ~c t J x s c ¡\'11 T H

{ P A D_ I tl D ~X - OF F . STATI STI C S~NOR~eOMP UTE - O ~F , SOR T~I tl _TE HPD B

O ~F ,I GNORE_ DUF_KEY - O~F , DROP_~X ISTl tl G - OF ~ , OtlLIN E - OFF ,

hL LOW RO W_ LOCKS Otl, ALLOW_ FAGE_ LOCKS - Otl l

ON ! FR I HARY]

Pá gina 7

Page 8: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

DEFINIENDO INDICE UNI CO COMPUESTO

DCdo>tiJ",lu,.'PK_rieto_fO(I""

Indo< . o d~v. P'im' ryiUm'lu, " I''''o~'',.,",,,_, __~~__~~_~~_~~~ ,

Co lum"..

Es Unlqu~

,d 1" 1 (~ p~ (A5C)s,

In d,co

Cr< or (otlloCl USTER W No

ID E< 1"Clh( ~oo" d. ..p."o ~. d. PRIMARY ,

Cm"

As í como se puede definir índice único a un solo campo lambién se puede ha cer de la misma

forma con mas campos, en e l ejemplo se res lringe la duplicidad de productos por factura.

y aquí el ejemplo de hacerlo vías sen tencia.

O FF , SORT_ IN _TE MPDEl

ONLItIE - OFF ,- OF F ,

CREh TE UNI Q UE f1 0 NC L US TE RE D INDEX [I X~d"'t ..~f ac t u r a l OH

[dbo l · ld"' t a~ f a ct ur a l

( l i d~f act l hSC . [ p r o c o d] AS C )

WITH < P AD~I N D ," X - OFF , S TATIS TICS~NOR,"COHPUTE

ALLOW ROW~LOCKS - ON, hLL OW PAGE LOCKS ON ¡ ON [PR IHARY !

CAM PO CALCULADO

Página 8

Page 9: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

~ M,<IO'ofI SQL S.IV~' M~n~g~m .n1 S1ud,o - g X

j ,;,¿ Ntlm coo, ,,tu I DJ ImEn [;j ! [3 I~ i:¿~ r¿~ Q ~ I~ ni l'J. (jo :5' i..

~ .Ji I " l ,,;;g ·m F.i ~ bJl ;hplor.dor d. obJ.-to. ,. J;l X >MAtnUNEI .n,ib. se...o det. f.d"'~'l • x

••

"

-

Perrnit~ v " •

"f1(Jmer~ (9, 2)

numer~ (9, 3)

Narro, e de columna Tpo de d<ltos

prOo:od

c""tkJ M

preoo

P,op« d. d« d. <ol" m ., .'-------

~1J 11':1El E"pecr ~acÓl de cDUma cantdad' precOJ

(Fórrno.>a) contdod*prec Oo

Per>i>tente No

,8 Especf ~acOn de kJentkJ~ No~--- --, P",.istent"

I

• I

"

••

, I"';;r Ro<t",-,,~ ,,",

'"

~ ~ MArITUt jE Z ~)(Jl *rm9,O,IJ 9~ ·"1

.. L;¡¡ B"" , d . <h t o,

~ B,, ~, M d,to' del",t",,.~ c=.J ¡"'ton.. .,. " d. b >< << d. d..o,

~ lj mlb,,,,¡.,¡, tM

~ [J'~9"m~' d. b~,. d. d.t~'

~ T.bl .,

~ 1:::1 T.bl.. d.l m¡. m.~ l::l <ibo,d.nt<

~ D <lbo,c, I" _I.<t ,,,a~ t:¡;¡ C" lu m na,

f id_I. <t (Pr ¡nt , No~ moJ.el « h,,( l l),

III '.c.f." I"'>tetom•.III <o<k lr ( <nt, NUll)

~ D (1,,,,,

( on<et .,, · I ~l • T

, 1

Hay campos que nos ayudan mucho. como son los campos catculadcs, la idea es no grabar

directamente datos qu e son calculados, en el ejemplo el campo "total" es un cálculo de

"c antrdad- precro" y de la forma que está definido no ocupa espacio en disco, ya que 1a

propiedad pe rsistente e~lá como "no".

RELACIONES

Página 9

Page 10: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

, , XRel.none T.bl •• Y column•• X

R, I ,,¡~ ,N~mbr< d. l. r<lo,,~n:

fK_du I fK_d.·.._f."ura_( ~b._f.ctur.I :JT, blo d. <1,,,, p,¡ncip. l: T.b lo d. <1;..... . ""no:

I..b. f><t", ;¡ - 1 Ideu 1ocw,. 1

,dJ o" 1,d f." - 1

I ' 0' 1 A" l't.. 11 ( 0" " 1,, 1 '" I

p etectone s de e te ve e xte r ne L?

Relocm 5eb::cio:mdo:

f K_detaJ a( tl.ra_COIbeJact ~',¡ Edil", prnp~d~d ", p",~ . 1 ,elación exi<i:eot• . IFK_det~J"cter"flodJcto

I 1

El (General)Com proru r datos exist",,=es Sí

8 E5PO(f o::ocm de t~b~ YcoEl Diseñador de tablasEl E5PO(f o::oc¡,)n de IN5ERT YL

Exigir po'"~ ,epi k:ocm sExioJ~ rest, icció n de cL,ve ex Sí

8 Identidad(Mombre) er_det"J oc ter~_c~J octur~

'D " Ir>~1M De5Cr\xm

( I( 1 I II\greo'" Elirrin" rc~"'"

Teniendo ya nuestras tablas creadas te nernos que relacionarlas, ¿ Por qué re laciona r1as?, hay

muchas ve ntajas de re laciona r n uestras ta blas un a de ell as e s mantener una integridad

refere ncial.

Las re lacione s en nuest ra base de dates e s com o slgue:

Página 10

Page 11: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

"Cllente.codcli" con "cabe factura.coddi"

"cabe factura.id tact" con "de ta factura.ld fact"- - -

"productc.o roccd" con "de tatecrore.o roccd"

DEFINIENDO PROCEDIMIENTOS ALMACEN ADOS.

Lo ideal es tener toda s nuestras rnte racocnes con las tablas a tra vés de "stc red proced eres"

Aqui un ejemplo para la interacció n con la tabla diente.

CRE ATE PROC EDURE MI AP L I _ C l i e n t e Sel e c t.,s e l e c t co dcl i ,nomcli , d i r c li ,te lc l l fr om c li e nt eCOGRANT E XECUTE ON MIA P LI _ Cl l e n t e SELEC T TO l usu~ r i os_e xec utel

co

CREATE PROC EDURE MI AP L I _ C l i e nt e In s e r t ~

@c o d c l i i nt o ut p u t,@n o mc l i v~rch~ r ( 50 I ,

@d i r c l i v~ rch~ r ( 80 I ,

@t e l c l i chs r ( lO Ixsi n s e r t in t o clie n t e <n o mc l i , d i r c l i , t e l c l i) VAL UES{@n o mc l i , @d i r c l i , @t e l c l i)s et @codc l i - I SE LE CT @@IDENTITY )CO

GRANT E XECUTE ON MIA PL I Cl ie nte I nse rt s TO [ us u~ r i o s_exe c ut e]

CO

CREA TE PROCE DURE MI AP L I_C l i en t e_E di t ~

@c o d c l i i nt ,@nomc li v~rch~ r ( 50 I ,

@d i r c l i v~r ch~ r ( 8 0 I ,

@t e l c l i chs r l lO I

"upd~t e clien t e s e t nomcli - @n o mcl i , d i rc li - @dl rcl i ,telcli - @tel cl i whe rec odc li - @c o d c l lCO

GRANT E XECUTE ON MIAP L I C l lente_Edi t~ TO [ u s u~ r i o s_e xe c ut e ]

CO

CREA TE PROCEDURE MI AP L I _ C l i e n t e Bor r ~

@c o d c l i lnt

"del et e f r oro clien te whe re co dc li - @co dc liCO

GRANT E XECUTE 0 11 MIA P L I Cliente Bo r r ~ TO [ u s u~ r i o s_e xe c ut e ]

CO

Página 11

Page 12: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Si des eamos hacer un diferen le select o otra inte racción con nue stra ta bla tendría que ser a

traves de otro "stored procedures " jos procedures de ejemplo son bas tante haslcos pero

suñdentes para las jn terecocnes bastea s que se tiene sobre una tabla . A igual modo se tendria

que hacer con las de más ta blas (producto,ca be_factura ,de ta_factura).

Página 12

Page 13: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

CREANDO LA CAPA CONEXIÓNl a d ase conexión tiene la siguiente composición :

~....... , "'1'1 _." 'n~

u'o<Il1 " ,;"g"w<t[11' <1¡;"gd"'O<!' I : . trin¡¡dtl{ll , .!mqad(1 1 ' "¡;,,gnoon!11 ;"t

.1OO g, ~ouod. u. u ..",g, '""'00 JlW" ' '''''l!. ""uoo" Orv "rlll~. om","" "" . "",g , ~O""O" "dO '1OOg)

,,can• • i<>n

con'ClaO<l esc.onec180go"cool)

'''0<"''..,1, , tn"ll

_CIJ rsa< : .tri"g, ~,,,,,.;. .,ri<'\i

ExocSp(",,"oda _ Sjl: "ring. omrado prnto_ ' "';"9, ."tra<lo _CIJfSOl: _ul,g, ",,"oda _ ti¡>o ' .!mq¡~>""SOl.(onh.o _""""'" .,.;n•."" UoO_ _ ",1, " ,;"g)lIOtme"oa¡OO

CLASE BASE

........ 1 -

. 0

_.e"'"'~,.. O","e~

••• 00 j 1... o ", c ,

m doloco... """'o, "O"'.., .,d~,.•... ~u l" 'ook,..""" "

"'''"O" .." L" ' O ~, ' 0"" ">OO,",CTID ,.,n""". u. uo n e . P"". OC " . ,, "' . od, .~o>

<un"io n " 1c ,_..,v •• "r1"g~ . _~ " 00 " " "" . P" " " " ,, ' nO, _""" o. """"'h1•. • " vi""" ~." ,eiffi ' _ " ' V)

t.,,, ,",""no-~ j " ,,~ '_="''" '" pyn-a l"n~ U"":elu• • "<i~._~: i<dm , _ " ""

e h .. , "" • • "" "" ' _ "'"" " , ",' " 0 11 t."'~ '_"""tb " , ,,., O" - ')_.e ,, " off, oc o" ,," off0 0 ' o o M '"o"t . no" h off

. H

'"'"

.0.. .. • OUO'-.-" "..-.. ".. • •.. o o

o.e co" ury_.e o ."~,

, oc do "'0' ho u,"

' o t . N'"'_.e ,.,",atar

.=.~_o_,,,",,,

Página 13

Page 14: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9,0 y SqlServe r 2005

Ahí notamos que la clase base está basado en una clase "ses-ten" y se ve la creación de l

método "init()", que tiene a demás las prop iedades pro te gidas como servido r, usua rio, pwd,

etc. Y e l méto do "init{¡n recibe paráme tros y le asigna a las pr opiedades mencionadas.

CLASE CONEXION

,OC"'" _". o"._e......,.•• , ... e h lo

¡, """H e.' ,,"'""oe""~ ·p "v., · " •.~""., , ., ..,"'•••• " ,vi"""·' DAn""~· , . "".11< < ' ..., ,, , . ..." I.cs.He"'" ,~,.u 1>,0" ",","" ' _o' d'""'

" . "00 ",0" ' .",n"" 10' "' 01 _ '1"" "" ""' ·

v " '""S OL<X' C I ~o" . -nE ., . _ ..,. " r o >o " . U~ 'Q' ...OU<e ' . , , ' 0 ' "."0"

. 00 , '."",.R1!""'" . ~C ON

' '1Pn '[')!"''''-'''e'"oc"' ""' o"noo~

"' '''' Neh'" . =0"

" ' h 1o . " OO"-'0c"OLD" , ,,,"n:CTC "" " ~OO" '

,,"'''

_ re "

Es una clase basada en la clase "Base" en cual cuen te so lo con tre s métodos, el primero e l

método "conecta" hace uso de las propiedades de la clase base com o drive r, usuario, pwd,

etc. La principal función de l mélodo es crear la conexión con la base de dato s y reservar dicho

número de conexión. Adema nota mos que cuando el usuario no es "sa " o "admlnls tradc r"

ejecuta un rol , este rol es aque l que tiene accesos a los "slored procedu res " porque los

usuarios no tienen acceso directamente a los "stored procederes". menos a las tablas, si no a

través de es te rol ' usuertceexecute", que es un rol de ap li cació n.

El método "ge tncon"lo único que hace es devolve r el número de conexión a la base de datos.

y el método descone cta derra la conexión a la base de da to s.

CLASE EXECU

Página 14

Page 15: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

DEFI NE CL ASS EXE CU a~ con~x ion

PROTECTED ~ql , _c ur~ o r , MENSAJ E

PROCE DURE ExecS p ( SP a~ St r ingB, pwt o ~ a~ ~ t ring , cur~o r a~ Str ing, t ipo )Ir EMP TY(_ SP)

THIS . HENSAJ E- "5QL UAC IO"RETUPN - 1

ENDIrIr EMP TY( pwt o ~)

pwt o,, - ' ,ENDIr ~

THI5 . Con~cta ( )I F E MPTY (_cur ~ o r )

DEU-SQL E XE C ( t h i ~ .ncon , " E XE C UTE "+ SP+" " +_pwt o ~ )

Ir D:!:U<OA:!: RROR (_ ERR )TRIS. MENS AJE- 5TR ( ERR( l ) ) + ' '+_ ERR (2 )

n SETRIS. MENS AJE- " "

ENDIrRETUPN DEU

n SEIr t ipo- . t .

D EU-SQLEXEC(th i ~. nc o n, " E XE C UT[ "+ SP+" " +_pwt o ~ , cur~or )

Ir DEU<OAERROR (_ ERR)TH I S . MENSAJ E- ERR(2)

ELSETH I S . MENSAJE - " "

END Irn SE

Ir ' E~PTY( pwt o ~)

DO &_~P WI TH pwt o", c ur ~ o r

DEU- 1ELSE

DO &_~P WI TH cur~or

DEU- 1~ndit

Esta clase basada en la clase conexión es la que al fi n permite hacer la inte racción con la base

de datos a través de este método "ExecSP" pasan todos 10 5 "stored procedures" invocad os de

nuestra capa de negccos. Controla el tipo de "ste red procedure" si devuelve o no un curso r y

adem ás con el parámelro"_tipo", se podría de te rminar el tipo de origen de base de datos, en

lo pe rsonal solo he tenido dos orígenes uno el SQlSERVER y Base de datos nativa de VFP. lo

único que diferencia es la manera de ejecuta r elvstored proced ures" en e l SQlSERVERes el

NEXECUTEn y en el VFP es el NOOn

Cualquier error ocurrido grabara en la propiedad "mensaje"

CREANDO El OBJETO CONE

Ya teniendo nuestra clase crea da la pregunta de todas maneras e ~: ¿y a como lo uso? , aquí

viene e l ejemplo :

m . 5 ~ RV I DOR-nMI 5E RV I DO R n

, •

Página 15

Page 16: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

m. USUAP I O- " J P E; PE; Z"m . PWD-"MI PWD"m . Dri v~ r-" SQL SE; PVE; P "m . Db - " HI BASEDE;DA TOS"

m. d d i -"AP P-HI SO~TWARE PERSONAL; LANGUAGE -E spdñ ol"

SE T PROCE;D UPE TO b d s ~.p rg , c on~ x.p rg , E XECU. F RG

con~-CPE ATEOBJEC T ( · E XE CU · , m . S E RV I DOR . m .USUARIO . m . P WD , m .D ri v~r . m .Db . m .d

di )SE T DATASE5SION TO CONE . D d t d S ~ ~~ i o n l d

SE T DE LE TED on

Página 16

Page 17: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

CREANDO LA CAPA NEGOCIOSPara es ta capa estoy utilizando las clases no visuales de VFP que son los de tipo "Cuvtem", que

pueden se r reemplazados por el que má s se adecuen por ejemplo tipo "curscradap ter".

l a idea es tene r a lgunos méto dos básicos de interacción con nuestros "stc red procedu res"

pero a través de nuestra capa de conexión.

Para e l ejemplo crearemos e l obje to d iente que es laque interactúa con la ta ba de cl ientes.

N."", 1!_J?d_ A~" I,A:!"".-'.,:,;o¡,1i>TW~ e " ", "~oW~"h",e"'.-.r

,"~o

W·l,~ "h:ld , PWlc, ,, e 'o ", "~o~,n1,,",--d"',, ,

"~o" , , PWlcoodol p 'o ", "~od;,rl; e 'o ", P,Need" ,

"~o;' 00' 0 ,

"~o1. "_, ,,;.00< , P,N e~o~ e '" '" "~o"u",eI; e " ", "~o

" '00' ,"~o

,ee cll ,"~o

"'Id; e " ", PWlc,~>do ,

"~o

( dil P'OP.,tl i¡'¡oIhod - pl.>nll.... .vn Iche . "'1

r'? e'""ettoes - oldntl""'.V'" (e

<lil

Tenemos como propiedades los campos de la tab la, y los métodos [select, inserta, edi ta, borra,

valida, etc)

Aquí la programación que tendría los mé todos

Página 17

Page 18: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

~I

H"H'H~ c u r "" rWn H eh"

" ¡""TY I_ "'z. or )_Cur :50r ",, ' o'~_de_r,ürtJ'e cen ou l ll

end,'" U,;," (_e n r . o C)

U>' E lli , 0 =0 00

000"

" CDL• . ~X. C"" l ' ~ I lI' LI cli.no. , d . c t ' " , _ ouco " r) >0SEUCT " C""SOR

. alias ' C"""OR- -'"SE

J]j . 1","" , .... , •

En el granee se nota daram ente la inte racción del obje te conexión.

l a idea es ru ando se invoque este método es la de devolver e l cursor de la ba se de da tos. Si no

se le envía como parámetro e l nombre de l cursor opta ra por po ner un nombre tempora l, en lo

persnnalla mejor forma. Cualquier interacción con el cursor devuelto lo hago a tra vés de la

propiedad N _alias" ya que es la que tendría e l nombre del cursor asignad o.

",", coo-.<."'< u Th i~

u . V~ l1 ctA IJ. )

u . CODCL I~. COOCL Iu.llon :L I - .NonCL In>. D<p eL I- . D<P CL Iu . H L C L I~. UL CLI

, ~ X7 70 5QL U05HüW

? 1 ~. e OdcJ. " n . no.-.c J." '.'11 . d10 0 11 , -C11 . t do 11EN OU K.,.

If c en" . ~ '" c~ " l ' ~HPlI~c 1i ~ n'. ~ In, " r-t o ' , "~" >0. " o ""'1 1 ·~ . co rto J.l ~

Cu r _ . ~J.'_

B ,'..n" "',,,"~•~I ~~---=---:::=...:.c-==-----~C'

<~aJ .> .d

It U~ edl Cur l

~o1~c t " CurI n"~ " Iuto , C u r <rom "~mY~r

' n~t<

h o c h o · . T .

.""=d;~- c ono . = t"o n '''i o 1)<ndif

.nrti ~

. nct~1th

h t u m he oho

Página 18

Page 19: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Con es te m étodo se hace la inserción de datos, además no tar emos que la variab le "m.c cddl"

tie ne un @ ad elan te . es porq ue la variable en e l "stored procede res" "@codd i" es de tipo

"ce tpu t", des pués de ejecu tar este pro cedimiento dicha va ria ble tendrá el correla tivo

asignado por nuestro campo "ldentltv".

Además antes de ejecutar el "stored pr cdeccres" pasa por un filtro que es el método va lida.

este método como su nombre lo dice validara la infor mación como en el ejemplo valida q ue e l

"nomdi" no es te vac íe .

~e lie nte. Vd h ddr,a ( ld' d 1 ¡;J¡jJ~1 - o

~~

~Vll I ~ ,~ vdid "r ."

JOQjecl I"," c¡"nte P¡oceroe y

Parart'l<' t ~ r ~ o r 1g~n A-

L o c al v a lido-lJ i th Th i ~

LV, . v a lido · . !'".'( Til r':l.,} -"o CM~

r::.i' Propertie. - planilla•.veH IC a~ ~ o r iQ~n· l-"o C a" ~

,-"," cliente CM~ ~mpty(. nomc li )

. ""' n~aj ~ . , Falt a ., Nolillr ~ ,., c li ~nt ~'

Melho< l oyou{[! Oth~ rw i ~ ~-

" ", v a l ido · . T .'¿S . :" f,,"C\ ' -

!ndca" ~;;. . ~~-¡Deloul CM ~ or i¡;¡~n· 2.., Wrt eM elhOd -

_.....bI."'!'!':"'.,~.d.,,¡~s [U. e, ' "o C a" ~. ......,

CM~ ~mpty (. nomc li ),.., borro[IJ' ''' :

.., edila IIJ! e'. men~aj~ · ' Falta " Normr~ ,., c li~nt ~'

.., "s~r l, [U• ." Oth~rwi~ ~

,,"' lena_"oriobles [U• ." v a l i d o · . T ..., selecl Jº'~'- . ""' n~aj ~ • . F ..., selecl2 ...!~,,,~o~! !ndca" ~

Oth~r"i ~ ~

"o C a" ~

CM~ ~mpty(. c o dc li )

,,'oc;.me n~aj ~ · ' Fa lta Có d i go '" cli~nt ~ , 'y

,>'

De igua l mane ra completaremos e l método "edita" y "borra" con sus "Stored Pre cedures"

respectivos.

Página 19

Page 20: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

CREANDO LA CAPA INTERFAZENTORNO VFP

";I ...."".oIt VI.... "'....

':".."".."'IIIIII'!"III······ ""'·~co c ' \Dra j .ot , \l i b v f " ql ..:J, n ' IT~ ro " , \,<o )"","\m 1110"',"'

PREPARANDO CONTROLES PERSON ALIZADAS

La idea es copia r todos los controles de VFP y ponerlos en una clase propi a. en este caso a esa

biblioteca lo nombre como básico. a estos controles le ponemos nombres mas senci llos, como

por ejemplo a los "textbox" solo lo llamo "txt", a los "labe l","lbl", e le. Además de

person anzalo a nues tro gus to en ru ante a aspecto. Para copiar dichos controle s es suma mente

sencillo, lo que ha cemos es crea una nueva biblioteca de dases y nombrar los contro les ya

existentes por uno propio. En el graflcc se ve la crea ción de nuestro control pe rsonalizado "fbl"

basado en "label" y almacenado en la biblioteca de clases "baslcc"

Página 20

Page 21: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

'-D ¡;¡¡¡: Id ~ [g¡, ¡; I :r,;, la "" '" ! ~

--- - -~- ~

r;' ro v I§' ~ "t 3 II!:J '*

form neskme- - FormDocl _

' / l o rm l

, .= L.~bo:;ll =

'.1 Tttl. Form Control..

seseo

•,.. , ~ mnbo(BASICO)

~ edil: (BASICO)

~ ~<t (BASlCO)

[J:5J pag (BA5ICO)

,.. , ~ plúme(BASICO)

~ spim (BA5lCO)

iJf-- ---imi @ ~ [jill ..~ fiI

JC~g¡ [b5J D@

~,AItJ ~ ~

abl 1(')1 ®J ¡g¡ ~ ~

:¡¡g, Cl !!!!II O co ~

Ó ~ '!, .., 1.<' CII.

• ! f':

Página 21

Page 22: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9,0 y SqlServe r 2005

y ~ i es posible que pueda tene r cierta interacción como por ejemplo:

Al con tro l "textbox" vamos a cambiarlo de color cuan do esta selecdcnadc

'JI forml

[I======-_I

El código para te ne r es te electo es e l siguien te : La programación está en e l "los tfocus" y el

"gc ttocus"

[I..ss Designe. - b..sico,YCK (b,tl

ÜQiecl 1¡¡¡¡jJ¡,l

===-__-'"JJ.cI 1<I

THIZ . Spe ~ i a lEff e~t -O

THI S . B~r derC~ l~ r- RGB ( O , O , O I

THI S .T~reC olor= PGB ( O , O , O I

t h i " . BackC o lor-PGB (255,255,255)

dJ

THI S . Spec i a l ! t t e c t- lTH I3 . B~rde rC o lor- PGB ( O , O , 2 55 )

TH I3 . r~reC~ l or- RGB ( O , O , 2 5 5 1

th i " , BackCo lor-PGB (2 55 , 2 55 , 21 5 )

-'.D•

Esta demás decir que de ahora en ad e lante solo usa remos nuestros controles para todo tipo

de interfaz, des de un lorm, textbox, grid, labels, etc.

FACILIDADES PARA EL USO DE CONTROLES PERSONALIZADOS

Página 22

Page 23: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Hay una he rramien ta que trae VFP que 51' ll ama "tcolbcx" el cual lad lita el manejo de nuesn cs

controles creados.

Aquí un ejemplo de su creación, anexa r nu estros controles persooatnedos a dicho "tcnlbox" y

a final la creaci ón de un formulario basado en nue stra d ase "torm" personali zada.

l. $ ¡¡ [S "LNiP.iiMJI File Edil: \le" Too!> PrOQl'om Window HeIp

FoIder '" which to ereote Toobox:

To. Toobox dat o toble cOOd roe< be fO'.Xld or does not ex~t ,

Ic:\docL<rJeni:s ond sett ngs\miguel ontenez e\dotos de prcqomo\rr ~

= =-- 21ro ,new Toobox '" the " , ' " ' " ","

r , ocote oc existO;¡ Toobox

~-"l oca t e ! [reate ToolboH

_____~~=!J"'""

l' l l j

Página 23

Page 24: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

! "11~ Toolbox

I ========:------~- (DI '"I File Edil: Iftew TooIs Progr= Wh'ldow Help

lo .... I"'c.l''' .. I~~Fovorites

Tex t 5cr ops O!!!!!VFP Bose elass e,

VFP FOlXldotoo e lasses

My Base C~ses

My XML Web 5ervices

My ActiveX e ontrols

,,-..Add C1a•• l,brary

Add o doss library to "" ex¡, t",. c"" egory by ,elect",. orle frQfl1 the dr op-dwIn or add o newcotegory by typing o new n"",,, .

c.otegory : I'C',',,',:-- - - - - - - - - - - - - - -iJd oss , Il r",y: IC:\PROI CTS\UTILIDAOES\BASICO. vex [JI

Clic derecho y "add dass u brerv"

Fovcdes

I, ! ! M

· 1001>0.

1D_~ IiIIj~::1I,~ ~ e¡.. ,..sr

~ , ""', ""'" 0"-OlCO)

: ~. " ,,;,,5:CO¡

en " "pr o J ~oC~\ lilivf• • ql

,U H nI ro c : \ o r o ) e o,, ) """M""3e HU," CLi.OO

","" "'"DoI",

~=t~\

" "", elm' ''",,Add C;<,O""

"ot',,"ú<.,,.,C" b'cl" '"00,,

OC"'" Lo,k~ O;,obYti<I, T" t

~ 81""" '" ' 00

W ''')(OIf.n (B· ' · --'-,,' d (' -c_.:;:_.,.

". 0Dl ("' )(0', ,-,j IB'5ICG)

'",F""",,,' '''''' 'a'P'_ B", 0 '

_ 'ound~

M, ,"oel.

M" ", "'"

M, ,..",,"! G'"",~ PJ

I

o

I~~~~--I=

""': 1118

Página 24

Page 25: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

1" ".mlI>J 1o", 1M,n",,¡' I l'"", 0" " I F",,, ',,~I . ·...._(,~,,"'"" .,""'.,'o.•.•

SpKt"" th< .. "'..... " ,' _ """,;"'.-..J d ,,,, ""','y,o.'cert ,;" , "" ot¡"cl', C~T

1- " ,

" ,,""', '" 118"oiJm F, ,,,,,

" C~;; ''' 7;;'; '

D ,~IelCI" o"" Dx ' '''' F f~0{",1!. ,

f Ml'~c T ',T,'.""..cr:.'-''''''':J.>Fii,'d'" ,'.?N J:!, ' fi;>¡;COO¡;;:;¡; ¡¡'

K" P". ;,~ r'}'o;;, ID <JO:;¡i':N,." r...lº,L[º ' ''''' ~ . ,o , ,~ <l': ' '''' .r),¡~,,~ . ,""O,,,,, .. 3o Llb:~a; ' :T '

' OLE O,¿¡:¡;¡~ ¡¡ :'Ú ;;¡¡¡Odp<i;;ctj " " ,_.,., _p",,,, 11

'" P<lIeoO"" n ,-p¡.R."".' .1e' '''''..!'.,.,' .h""."T.~"' . , ' " ,T" ."!..", .-,~J : · : : · : : · : : · : : · : · .:J

A Illl lIll <:] (! '!>~ IV ~¡~ c: ¡:¡¡l'iI .~ ~. ~ D

'l!1 n f~"'... Ó JL

""' ,," 'IIl @, 'llll',1,; V '<", 01 e !'I

[¡;j] roc' 'O.,

---.J1l._1""' <> Actw",,"

CREANDO CLASE MANTENIM IENTO DETABLAS

Crearemo s una dase base basada en "Cmd" de nuestra dase "Base" con funciones cernunes,

como agregar. edila, eliminar, sal¡r. Y otra de Aceptar y Cancelar

Página 2 5

Page 26: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Al D,¡o ~ el>¡ed, Lo;oul Olh<f F,w,,, I

~

'.... f:;;;S T -.T 'lIl' p.,I"j(',... \o/he¡ -1

I ~ ~ '

(;¿J] P[OCeOJre: Ip ucr

oh " . Parent . añaje ( )c h>o Lo <m. Reü~~h

O"e'l: I¡:¡ cred1

; Cmd l Cbek _ I:l X

, p

ti: Pr" portles - t"ol•.vc. (mltobar ra ) ~ 13

t t.1~ . ear e r.t . ~orr a 11t h i ~ t D r~ . Retr e e h

~'DIr

<Tiil

Crea rnos los métodos (añade, edila, borra, etc ) en la dase padre en este caso el "containe r",

y a los bolones aslgna mos esos el código para tnvocarlos.

y la clase "o kcance!" de la siguie nte forma :

Página 26

Page 27: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

liEl Cla55 Designer· tceu.ecx lok... _ D X Iiil' Propcrtlc, toOI'.YCK (okcüncc

~l11

;'

":~ ¡;;o ncel""

~,.< , r>1

¡ cmd1.Click _

,Ifil okconceled

Objecl I¡::¡ cmd1

th i ~ t o rm .grab a l )

~I Proceche IfJ Ci ck

eT;;l

Si cmd2.Click _

OQioct :¡::¡ cmd2 (i} PjocedYle; I i' C1ck

thi~ to"m. l i mpia ()

CREACiÓN CLASEDEFORMULA RIO DEMTTO.

","" ,

1-; ';;'eh1" ",,","'''''e~L '''''''ool .· . 7.'hlo'o<~, " ".'0,"-,"0 11

cth n ,",ono .. ' omU Meta

, odeta-,e o oo",o "

t ttM<W02.lnII • ~ X

,oraba_'e~oo",o "" .<tU,,,,,cevato," " ar 11)

' ","veth

<T; 'I

I

t h eo'ono , Meta~ "th, ",or<" aot , vatoo Jo"" (' )

" , 1

Página 27

Page 28: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

CREACiÓN DE LA INTERFAZ PARA El OBJETO CLIENTE

Empezam os con el código :

CREATE r ORM clie n t e ~~ f rmd~t~2 r ROM t ool ~ .

111 fa rm ~o.i~nor d i< n1o.•<~ _ :c X

... Montonm.ronto do C ~onto. _ I:l X

or ecCl ón

~. Actc{;""" .S "" .Ifl 'ó""L "&' ~ctcL"""T.i>tlJII."",J..~ ActO:""",,,,, O' Doeo "'" "ppo,' Ac'O:""",iYCm;.;:;,;;:¡ .. Tii¿,::¡e¡- ~,~ Fcm'" .lfl"",l.~...I"f'U:ft.0.sk. .11.1"",1.~ M"lenglh O

~ ¡.¡ "roW;:¡¿¡¿,;;; i ii¡:¡;;;r ~" O ~ ,~. '"

~'~1 ;"3~ M<lhods~oJl o;¡:;< F, v>lres

11 Pro• .,".' - c l.nl•."'-x 1!!!IIiJt3

.'

c ;a I ~ O Nomm.. .

1I

Lo ú ni c o q u e t e n e mo s q u e hace r e~ nuest ro fo r mulario es e~lazar

n u e s t r o s objetos int e rfaz con n u e s t r o ob jeto negoc io , e n est e caso

e n l a z~ rl o s p or medi o del " c o n t r o l s o ur c e n del "Tex tbo~n, en c~da un o de

es tros con t roles en l ~za r con l ~ p r o p i e d a d e s d el ob je to ne goc io , en el

e j e mp l o es el I "t~tl " con cliente .codc lil , etc .

Uan v ez h e c h o eso y a p o drem o s pro b a r nuestro formu lario , sin

o lvid~ rnos q u e deben se r e j e c u t a d o s desde n uest ro progr~ma p r i n c ip al,

ya que ese p r og rama hace l a conexión a l a b a s e d e da tos adem~s q u e

carga nues t ra configu r ación de usuario .

Página 28

Page 29: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

.. Mont"nmient. de Cijent". _ Q X~-------------------

""eo:.x,Io/ >"fu 1'16 Ln o - CoIilü

,~~---

[<reCCl on T, Ie(,

1<I uI

P ar a el e jemplo d e f ormu l ari o s e pus o po r d ef ecto qu e se va ~ a g r e ga r

un c li e n t e p or eso que apare c en de s ~ct iv~do s l o s botone ~ d e nue s t r a

b arra d e m~ nt e nimi e nt o y ~pa re ce activa d~ el graba r o c~ncel~ r .

Al hacer cua l q u ie ra de e s tas d o s a CC10nes activaran l o s botones d e l a

b arra d e ma nt e nimi e nt o y desactiva r~n el gr ab~r y c a ncel a r .

.. Milnt"nmient. de nent.. _ -º- X

Actuoli1O

"',""

95 é4

T, I,(, "' ,- Al eYd

Ci reCCl on

'" l. torre 145

) jj , n OGrri nuuez

Juan ~ a n n ue

Cad'Jo Nomt reI 1 Ju , n Pere,Codg< D

T~ehm

Ir~"'"~'~=====I '

Página 29

Page 30: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Có3i<p D,,, peru1 46l.im , ·

,,,,._,

Di<'ecCÓ!l

od , '",,1<" Busca'

, ,,,,rona955 45241

" 1>1

Al mome n t o d e e limin~ r la c la~e y a t i e n e e ~ta pre~ un t a d~ a ~ ig n a da . As i

qu e V~ a ~ ~ l i r en todas n uestra p a n t a l l a s d e l a mi s ma ma n e r a .

• M.ntenimiento d. Cliente, _ [J X

Edt ",

1I

C Od o;¡ o Nor10' e DI'eCCl on

1 ..<J , n P.'o, Pe roz , ,, I, lorr0 145

'-VI

r=~"ó=" ===='"""":'::'=======1-

"'":":":'::==J1_

,<1

N ue ~t r a bús queda t a mbién e ~ t a i nt eg r ada e n la c lase y toma e l no mb re

d e t o d a s l ~~ c olumn a s d e l "g ri dN .

Página 30

Page 31: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9,0 y SqlServe r 2005

... M.ntenimlento di! Cllent. . _ I:l X---------------------

' ., .. y,

;;; MlgJ Norrm re

o O'denor 1 Buscor

0"""00

[ch ,

,<I 1>I

E st . s p .nt . ll . s t.mb i~n son ~Re s iz.bl e s" p .r. l. comodid.d del

usu. rio.

Página 3 1

Page 32: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

Nombre

1 _

I~~~~~~-

1_-

3 Juan Manrique

Buscar

Gl'ab",

hdem á s q ue ~oporta n se r c~ rga d~s ma s d e una v e z y sin p r ob l ema al g un o

y a que uti li zan cu rso res c o n no mb re s a le~ t o r i o s.

Página 3 2

Page 33: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

códioo O

ld'"

'usear

Fo'"

A,rel>'< ~"

,.. Euscar

":na { O"'".~. .~

2 J u,", Do m

eooc.larGrabar

Dteccoo1" potU " " "m - colóü

Te~rOl'O

1«5455'

P,e ,O'

P ar a hace r la s i gui~nte p~ nt all a S~ nos hac~ muy s encil l o , l~ tabl a

cl i~n t~ guardam o s con el ncmbre d~ pro d u c t o, c ambi~mos nue s t r o ob j~to

n~go ci o d~ cli~ nte p or produc t o .

Página 33

Page 34: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

El tOrmD"'~.r producto.lC" _ I:l X

"T.. 1>1o do Prociuctoo _ o X

lh Monoi'

1"" ROlI '" P,op.ot." p. ociuclo" 'H I!!!llilEi

l"" PFOJ UCTO 1...'1

"'~Ol'~ei>o±-.JLLo;oo.<~,v"'res.J

¡,¡J I IA."'¡d,

PRDDUCTO- 7¡Dr.'I<ht~

1_ ""~,,~~ _ "_ "~ '"_" __:_~ _ ::;_'::':~'::'=": :: iJi

"',,

» :•••

y e n nue s t ros mé t odo s reempl oz ~mo s p o r o nue s t r o c oso lo po lobro

cl ien t ~ p o r p r o d u c t o y o s i gnomos nuestro co ntro l s o u rce d~ lo~ o b j etos

i nt erfoz o nues t ro n u~vo o b je Lo neg oc i o .

El tOrmD"'~.r producto.lc" _ I:l X

"T..1>1o do Proeluctoo _ I:l X

~~::::::::::::~8 I f trd!:le~ I='00",0 ¡¡¡¡ l E•• • I

U,,~n;

D M"CI1 oOS, D 'A"'," Ilh~' wcrd IRo¡o1.co1;l1

D v¡,." ",,,.-.,j D s".", ",d~.'d I C..-.o~ ID li" -';00 , ,,0,

'mreo [ ,,'eol 1):><""" O [ ,,'''' ar",¡ e III 0Cie'¡'

Il c h ,"~o' '''

IF ¡:f;¡i!!e&- .diC '"- I )

H~~A~HüXI, no:l-'c to.llen' ~J e . 1 ' .' loro r "E"D H. product o, b lanq u e ,._ daC o ~ 1)

.Hfr~~ h

IIIn

Página 3 4

Page 35: Visual fox pro 9.0 y sqlserver 2005

Visual FoxPro 9.0 y SqlServe r 2005

111 '.rm D.''lI',.r producl•.o<x _ ::: x

.... TiO.... doPr.ducto. _ I:l X

..

'"'"''

CÓCl go Des " ,,"ón

COOo' IMPR'I ~ ...

~ I TP. th l , 'crm ~

I F ' , ""o,hoto. i n, o r t"li~' ,,~ l ~rBOX ( _pr o du" co K~n~ 'J '. 1 Ó . lrmr ' 1

r oturn

~"_pr o du ~t Q _BL. n'Iu " _ d " t o . 11. re ~ r .,h

o nd~ith

1; ' rmd<ll..2 1.&r~b" registro _ I:l X

r' jo

y y o p odemo ~ p r o b or nuestro nuevo p~ nt o l l o con lo mi s mo func ionol id~d

de lo p r imer~

e-,,;poón

1~'Ie'~'" [9'

2 Televisor LeD 32"

Ln M"""io

I I

1>1

Página 35