'#### download mysql.dll from http://www.[abandoned, outdated and now likely malicious qb64 dot net website - don’t go there]/mysql.dll (~2MB) ####
'----------------------------------------------------------- MYSQL -----------------------------------------------------------
SUB basedato
(busclave$
, rows
, columns
) '*** Hacer busqueda en la tabla ***
errf = mysql_query(conn, busclave$)
'DIM columns AS LONG
result = mysql_store_result(conn)
'DIM row AS _OFFSET
'DIM dato AS _OFFSET
columns = mysql_num_fields(result)
rows = mysql_num_rows(result)
'*** Guardar en Array ***
mysql_row = mysql_fetch_row(result)
mem_mysql_row
= _MEM(mysql_row
, columns
* LEN(an_offset%&
)) 'The upper limit is unknown at this point mysql_lengths = mysql_fetch_lengths(result)
mem_mysql_lengths
= _MEM(mysql_lengths
, columns
* 4) FOR campos
= 1 TO columns
mem_field
= _MEM(_MEMGET(mem_mysql_row
, mem_mysql_row.OFFSET
+ (campos
- 1) * LEN(an_offset%&
), _OFFSET), length
) DB_RESULT
(campos
, filas
) = SPACE$(length
) _MEMGET mem_field
, mem_field.OFFSET
, DB_RESULT
(campos
, filas
) mysql_free_result result
'------------------- CALCULAR LETRA CIF -------------------------------
cif$(1) = "03A": cif$(2) = "11B": cif$(3) = "20C": cif$(4) = "09D"
cif$(5) = "22E": cif$(6) = "07F": cif$(7) = "04G": cif$(8) = "18H"
cif$(9) = "13J": cif$(10) = "21K": cif$(11) = "19L": cif$(12) = "05M"
cif$(13) = "12N": cif$(14) = "08P": cif$(15) = "16Q": cif$(16) = "01R"
cif$(17) = "15S": cif$(18) = "00T": cif$(19) = "23T": cif$(20) = "17V"
cif$(21) = "02W": cif$(22) = "10X": cif$(23) = "06Y": cif$(24) = "14Z"
a#
= VAL(a$
): b#
= a#
/ 23: c#
= INT(b#
) * 23: d
= a#
- c#
'----------- CALCULADORA ----------------------------------------------------
a$ = "": b# = 0: memo# = 0: tip$ = "="
LOCATE 2, 2:
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" LOCATE 3, 2:
PRINT "ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º" LOCATE 21, 2:
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" a$ = ""
a$ = ""
b# = 0: a$ = "": tip$ = "="
c$
= a$: a$
= x$:
CALL nonum
(a$
, bien
): a$
= c$
a$ = a$ + x$
opera:
b# = memo#: memo# = 0
tip$ = x$
b#
= 0: tip$
= "=": memo#
= 0:
LOCATE 4, 23:
PRINT "Desbordamiento" 40 a$ = ""
imprime:
SWAP calcures$
(ncalcures%
), calcures$
(ncalcures%
+ 1) calcures$(16) = a$ + " " + tip$
calcures$(16) = a$ + " " + tip$
'CALL scroll(tipo$, nlin, y1, x1, y2, x2, colo)
'LOCATE 19, 4: PRINT " Û "
SWAP calcures$
(ncalcures%
), calcures$
(ncalcures%
+ 2) calcures$(15) = a$ + " T"
SUB colpos
(y
, x
, colo1
, colo2
) '-------------------------------- OBTENER COLOR DE FONDO Y TEXTO DE UNA POSICION DE PANTALLA ---------------------------
b = (y - 1) * 160 + (x - 1) * 2 + 1
a$ = ""
b
= a
/ 2: c
= INT(a
/ 2) a = c
colo1
= 0 - 1 * (VAL(MID$(a$
, 8, 1)) = 1) - 2 * (VAL(MID$(a$
, 7, 1)) = 1) - 4 * (VAL(MID$(a$
, 6, 1)) = 1) - 8 * (VAL(MID$(a$
, 5, 1)) = 1) - 16 * (VAL(MID$(a$
, 1, 1)) = 1) colo2
= 0 - 1 * (VAL(MID$(a$
, 4, 1)) = 1) - 2 * (VAL(MID$(a$
, 3, 1)) = 1) - 4 * (VAL(MID$(a$
, 2, 1)) = 1)
'------------------------ COMPROBAR FECHA REAL -------------------------------
IF aa
= 0 THEN bis
= 1 ELSE bis
= 0:
'--- a¤o 2001 al 2003 bis
= 0:
IF INT(aa
/ 4) = (aa
/ 4) THEN bis
= 1
'------------------------------- CONVERTIR EN CADENA CON CEROS A LA IZQUIERDA Y 2 DECIMALES ---------------------------------------
d = c * 100 + .5
d# = c# * 100 + .5
a$ = "0.0" + a$
a$ = "0." + a$
a$ = "0.00"
'----------------------------------------- CONVERTIR EN CADENA CON ESPACIOS A LA IZQUIERDA Y 2 DECIMALES -----------------------
d = c * 100 + .5
d# = c# * 100 + .5
a$ = "0.0" + a$
a$ = "0." + a$
a$ = "0.00"
'----------------------------------------- CONVERTIR NUMERO CON SEPARADORES DE MILES Y 2 DECIMALES -----------------------
d# = c# * 100 + .5
a$ = "0.0" + a$
a$ = "0." + a$
a$ = "0.00"
a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma
'----------------------------------------- CONVERTIR NUMERO CON SEPARADORES DE MILES Y 3 DECIMALES -----------------------
d# = c# * 1000 + .5
a$ = "0.00" + a$
a$ = "0.0" + a$
a$ = "0.000"
a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma
SUB converprinentero
(a$
, b
) '----------------------------------------- CONVERTIR NUMERO ENTERO CON SEPARADORES DE MILES -----------------------
a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma a$
= MID$(a$
, 2):
'--para quitar caracter que se ha generado por meter la coma
'------------------------ COMPROBAR SI ES UN NUMERO --------------------------
z
= INSTR(z
+ 1, a$
, ".")
SUB rutimput
(y
, x
, a$
, l
, ant
, sp
, nu$
) '----------------------- ENTRADA DE DATOS DESDE TECLADO ---------------------
x$ = ""
'--BEEP
a$
= MID$(a$
, 2, LEN(a$
) - 1): c
= c
- 1 '--BEEP
'--BEEP
'--BEEP
'--BEEP
'--BEEP
c = c + 1
c = c - 1
c = c - 1
a$ = a$ + x$
CALL colpos
(y
, x
, colo1
, colo2
)
control = 0
'--BEEP
c = c - 1
control = 0
'--BEEP
c = c + 1
control = 1
control = 0
a$ = "": c = 0
'--para evitar error de teclado con la arroba
'--BEEP
'------------------------- BUSCAR CLIENTE POR NOMBRE ----------------------------
bus = 2
LOCATE 4, 10:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Busqueda de Clientes Por Apodo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» " LOCATE 10, 10:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍ <F4> Cambiar busqueda ÍÍÍÍÍÍÍÍÍÍ <Esc> ÍÍÍÍÍÍÍÍÍÍÍͼ " si = 0
y = 7: x = 13: a$ = "": l = 40: sp = 40: nu$ = "T"
y = 7: x = 13: a$ = "": l = 15: sp = 40: nu$ = "T"
CALL rutimput
(y
, x
, a$
, l
, ant
, sp
, nu$
) bus = 2
LOCATE 4, 10:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Busqueda de Clientes Por Apodo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» " bus = 1
LOCATE 4, 10:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Busqueda de Clientes Por Apellido ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» " '--busqueda por iniciales
busclave$
= "SELECT apodo, nombre, codigo FROM cliente WHERE nombre LIKE '" + a$
+ "%'" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM cliente WHERE apodo LIKE '" + a$
+ "%'" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 10:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<" + CHR$(24) + ">ÍÍÍÍÍÍÍÍÍ<" + CHR$(25) + ">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " '--busqueda de todos los datos
busclave$
= "SELECT apodo, nombre, codigo FROM cliente ORDER BY nombre" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM cliente ORDER BY apodo" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 10:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<" + CHR$(24) + ">ÍÍÍÍÍÍÍÍÍ<" + CHR$(25) + ">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " '--busqueda que contenga frase
busclave$
= "SELECT apodo, nombre, codigo FROM cliente WHERE nombre LIKE '%" + a$
+ "%' ORDER BY nombre" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM cliente WHERE apodo LIKE '%" + a$
+ "%' ORDER BY apodo" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 10:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<" + CHR$(24) + ">ÍÍÍÍÍÍÍÍÍ<" + CHR$(25) + ">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " max = rows: loca = 1
a$ = "@"
a$ = DB_RESULT(3, loca)
loca = loca - 1
loca = loca + 1
impridatos:
y = 1
FOR n
= loca
- 2 TO loca
+ 2 y = y + 1
salbuspais:
'-salir
'------------------------- BUSCAR POR NOMBRE PROVEEDORES ----------------------------
bus = 2
LOCATE 4, 14:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍ Busqueda de Proveedores por Apodo ÍÍÍÍÍÍÍÍÍ» " LOCATE 10, 14:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<Esc>ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " si = 0
y = 7: x = 17: a$ = "": l = 40: sp = 40: nu$ = "T"
y = 7: x = 17: a$ = "": l = 10: sp = 40: nu$ = "T"
CALL rutimput
(y
, x
, a$
, l
, ant
, sp
, nu$
) bus = 2
LOCATE 4, 14:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍ Busqueda de Proveedores por Apodo ÍÍÍÍÍÍÍÍÍ» " bus = 1
LOCATE 4, 14:
PRINT " ÉÍÍÍÍÍÍÍÍÍÍ Busqueda de Proveedores por Apellido ÍÍÍÍÍÍÍÍÍ» " '--busqueda por iniciales
busclave$
= "SELECT apodo, nombre, codigo FROM proveedor WHERE nombre LIKE '" + a$
+ "%'" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM proveedor WHERE apodo LIKE '" + a$
+ "%'" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 14:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<";
CHR$(24);
">ÍÍÍÍÍÍÍÍÍÍ<";
CHR$(25);
">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " '--busqueda de todos los datos
busclave$
= "SELECT apodo, nombre, codigo FROM proveedor ORDER BY nombre" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM proveedor ORDER BY apodo" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 14:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<";
CHR$(24);
">ÍÍÍÍÍÍÍÍÍÍ<";
CHR$(25);
">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " '--busqueda que contenga frase
busclave$
= "SELECT apodo, nombre, codigo FROM proveedor WHERE nombre LIKE '%" + a$
+ "%' ORDER BY nombre" + CHR$(0) busclave$
= "SELECT apodo, nombre, codigo FROM proveedor WHERE apodo LIKE '%" + a$
+ "%' ORDER BY apodo" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) LOCATE 10, 14:
PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ<";
CHR$(24);
">ÍÍÍÍÍÍÍÍÍÍ<";
CHR$(25);
">ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " max = rows: loca = 1
a$ = "@"
a$ = DB_RESULT(3, loca)
loca = loca - 1
loca = loca + 1
impridatos:
y = 1
FOR n
= loca
- 2 TO loca
+ 2 y = y + 1
salbuspais:
'-salir
'------------------------- BUSCAR POR NOMBRE ARTICULO ----------------------------
si = 0
y = 7: x = 17: a$ = "": l = 20: sp = 20: nu$ = "T"
CALL rutimput
(y
, x
, a$
, l
, ant
, sp
, nu$
) '--busqueda por iniciales
busclave$
= "SELECT nombre, codigo FROM articulo WHERE nombre LIKE '" + a$
+ "%'" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) '--BEEP
'--busqueda de todos los datos
busclave$
= "SELECT nombre, codigo FROM articulo" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) '--BEEP
'--busqueda que contenga frase
busclave$
= "SELECT nombre, codigo FROM articulo WHERE nombre LIKE '%" + a$
+ "%'" + CHR$(0) CALL basedato
(busclave$
, rows
, columns
) max = rows: loca = 1
a$ = "@"
a$ = DB_RESULT(2, loca)
loca = loca - 1
loca = loca + 1
impridatos:
y = 1
FOR n
= loca
- 2 TO loca
+ 2 y = y + 1
salbuspais:
'-salir
SUB predeter
(impresora$
) mimpresora$ = ""
SHELL _HIDE "cmd/c wmic printer get name, default> impresora.txt" OPEN "I", 10, "impresora.txt" n% = 0
n% = n% + 1
dato$
= MID$(dato$
, a%
+ 1) dato$
= LEFT$(dato$
, a%
- 1) dato$
= LEFT$(dato$
, a%
- 1) + MID$(dato$
, a%
+ 1) a%
= INSTR(dato$
, "FALSE"): b%
= INSTR(dato$
, "TRUE") loca% = n%
IF impresora$
= "" THEN mimpresora$
= dato$
impresora(n%) = dato$
LOCATE 8, 20:
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" LOCATE 10, 20:
PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹" a$ = "@"
a$ = impresora(loca%)
loca% = loca% - 1
loca% = loca% + 1
SHELL _HIDE "cmd/c wmic printer where name='" + a$
+ "' call setdefaultprinter" IF impresora$
= "" THEN impresora$
= mimpresora$
impridatos:
y% = 1
FOR n%
= loca%
- 2 TO loca%
+ 2 y% = y% + 1
'------------------------- BUSCAR POR PAIS ----------------------------
max = 29
venta$(1) = "ESPA¥A ES"
venta$(2) = "ESPA¥A(CANAR.) E-"
venta$(3) = "ALEMANIA DE"
venta$(4) = "AUSTRIA AT"
venta$(5) = "BELGICA BE"
venta$(6) = "BULGARIA BG"
venta$(7) = "CHIPRE CY"
venta$(8) = "CHEQUIA CZ"
venta$(9) = "DINAMARCA DK"
venta$(10) = "ESLOVENIA SI"
venta$(11) = "ESLOVAQUIA SK"
venta$(12) = "ESTONIA EE"
venta$(13) = "FINLANDIA FI"
venta$(14) = "FRANCIA FR"
venta$(15) = "GRECIA EL"
venta$(16) = "GRAN BRETA¥A GB"
venta$(17) = "HOLANDA NL"
venta$(18) = "HUNGRIA HU"
venta$(19) = "ITALIA IT"
venta$(20) = "IRLANDA IE"
venta$(21) = "LITUANIA LT"
venta$(22) = "LUXEMBURGO LU"
venta$(23) = "LETONIA LV"
venta$(24) = "MALTA MT"
venta$(25) = "MARRUECOS MA"
venta$(26) = "POLONIA PL"
venta$(27) = "PORTUGAL PT"
venta$(28) = "RUMANIA RO"
venta$(29) = "SUECIA SE"
loca = 0
a$ = "@"
a$
= MID$(venta$
(loca
), 16, 2) loca = loca - 1
loca = loca + 1
impridatos:
y = 1
FOR n
= loca
- 2 TO loca
+ 2 y = y + 1
salbuspais:
'-salir