El programa que sigue es una modificación del anterior para que pueda eliminar registros
0010 REM "Elimina registros de Ordenes de Compra en PRUEBA
0020 BEGIN
0040 SQLOPEN (1)"Cuentas por Cobrar"
0060 REM
0070 pide_num_orden:
0080 INPUT (0,LEN=4)'LF',"Dar numero Orden a eliminar: ",orden$; IF
orden$=""
0080:THEN GOTO final
0090 SQLPREP (1)"select * from PRUEBA where num_orden='"+orden$+"'"
0100 DIM ord$:SQLTMPL(1)
0110 SQLEXEC (1)
0120 LET ord$=SQLFETCH(1,ERR=error)
0130 PRINT ord.cliente$," ",ord.tot_orden
0150 REM
0160 INPUT (0,LEN=1)"Elimina ese registro? (ENTER=Si, 1=No): ",elimina$:(""=01
0160:70,"1"=pide_num_orden)
0170 SQLPREP (1)"delete from PRUEBA where num_orden='"+orden$+"'"
0180 SQLEXEC (1)
0190 GOTO pide_num_orden
0200 REM
0210 error:
0220 IF ERR=2 THEN INPUT (0,SIZ=1)"No existe ",*; GOTO pide_num_orden
0230 REM
0240 final:
0250 END
El siguiente programa nos hace un tabulado de salarios,
con cortes de control por compañía, bajo la condición de que solo considere
los salarios menores o iguales a 500,000. Observe como se aplica el parámetro
COUNT(*) para obtener el total de registros por compañía
y SUM(salario) para indicar que ocupamos la sumatoria de salarios por compañía.
0010 REM "Tabula salarios por compañía ignorando salarios
mayores de 500000
0020 BEGIN
0030 LET pla=SQLUNT; SQLOPEN (pla)"Cuentas por Cobrar"
0040 SQLPREP (pla)"select numcia, count(*), sum(salario) from empleado
0040:WHERE salario<=5000000 GROUP by numcia"
0050 DIM emp$:SQLTMPL(pla)
0060 SQLEXEC (pla)
0070 LET emp$=SQLFETCH(pla,ERR=0090)
0080 PRINT emp.numcia$,emp.col002
0085 GOTO 0070
0090 END
Este pequeño programa lee un archivo de FOX y nos muestra los datos ordenados por nombre
del asociado:
0010 REM "Leer base datos FOX
0020 BEGIN
0070 SQLOPEN (1)"Fox Asociacion"
0100 SQLPREP (1)"select * from asociado order by asociado.nombre"
0110 DIM dato$:SQLTMPL(1)
0120 SQLEXEC (1)
0130 LET dato$=SQLFETCH(1,ERR=final)
0140 PRINT dato.ced$," ",dato.nombre$
0150 GOTO 0130
0160 REM
0170 final:
0180 END
|