############################################################ # SQL Visor, v0.1.0 # # Script para ejecutar consultas/acciones SQL individuales # JMEScript 0.2.0 ############################################################ # Miguel Alejandro Moreno Barrientos, (C)2020-2021 ############################################################ # EXTERNAL VARS: # + mi_host: opcional # + user: opcional # + password: opcional # + id_conexion: opcional # + mi_consulta: opcional ############################################################ # obtener host si indefinido(['mi_host']) inicio: ctx2d leer en mi_host > tipo 'texto' > msj 'Introduzca host.

>Ejemplo; >jdbc:mysql://localhost/mibd' si mi_host = __error1__ inicio: # cancelada entrada de datos devolver fin fin # obtener usuario si indefinido(['user']) inicio: ctx2d leer en user > tipo 'texto' > msj 'Introduzca user.

>Ejemplo; root
O nada si > no hay usuario' si user = __error1__ inicio: # cancelada entrada de datos devolver fin fin # obtener clave si indefinido(['password']) inicio: ctx2d leer en password > tipo 'texto' > msj 'Introduzca password.

>Ejemplo; 1234
O nada si > no hay password' si password = __error1__ inicio: # cancelada entrada de datos devolver fin fin # definir ID de la conexión id_conexion := indefinido('id_conexion','default_con') # -- Intentar conectar -- sql conectar > exito en ex_conectado > id id_conexion > host mi_host > usuario user > clave password si ex_conectado = verdadero inicio: # conexión correcta # lectura de consultas mientras indefinido(['mi_consulta']) inicio: # leer siguiente consulta ctx2d leer en mi_consulta > tipo 'texto' > msj 'Introduzca consulta.

>Ejemplos;
>create database copia
>use empresa_bd
>select * from emp >' si mi_consulta = __error1__ inicio: # cancelada entrada de datos devolver fin id_sentencia := indefinido('id_sentencia','default_sent') # ejecutar consulta sql ejecutar > exito en ex_ejec > id id_conexion > sentencia id_sentencia > consulta mi_consulta # consulta con éxito (devuelve un booleano) si esbooleano(ex_ejec) inicio: # la consulta es una selección (verdadero) si ex_ejec inicio: data, registros :== [falso,0] mientras data != nulo inicio: sql resultado > id id_conexion > sentencia id_sentencia > columnas '*' > registro en data si data != nulo inicio: si estexto(data) inicio: # msj de error imprimir msj data imprimir romper # mientras fin si no inicio: # imprimir registro imprimir vertical data registros++ fin fin si no inicio: imprimir msj format('-- %s registros leídos --', > [registros]) imprimir fin fin fin # consulta de acción (falso) si no inicio: sql resultado > id id_conexion > sentencia id_sentencia > columnas nulo > registro en data si data != nulo inicio: imprimir msj format( '-- %s filas afectadas --', [data] ) imprimir fin fin # consulta de acción fin # si esbooleano # error en consulta (texto de error), mostrar mensaje de error si no inicio: imprimir msj 'Error en consulta: ' + ex_ejec imprimir fin # pregunta SI/NO a usuario por más consultas ctx2d leer en continua > msj '¿Más consultas?' si continua = verdadero inicio: mi_consulta := fin fin # mientras # cerrar BD sql cerrar > exito en cerrado > id id_conexion imprimir msj format(if(cerrado, > 'BD \'%s\' cerrada.', > 'Error al cerrar \'%s\''), > [id_conexion]) fin # -- error en conexión -- si no inicio: imprimir msj ex_conectado fin