Generadores de Codigo - Reconocimiento de Patrones
4 - Reconocimiento de Patrones
Cuando se Escribe una instrucción sql como "insert" se pueden identificar palabras que no varían, es decir, cada vez que se codifica la instrucción esta contiene partes que siempre se escriben igual y que son de carácter obligatorio. por ejemplo en la instrucción "insert" encontramos los siguientes patrones:
INSERT INTO VALUES
IDENTIFICACION DE INSTRUCCIONES VARIABLES
Las partes variables en la instrucción"Insert" son las siguientes:
La tabla en la cual se hace la inserción, Los campos y los valores respectivos.
Las partes variables se muestran en negrilla para su identificación.
INSERT INTO TABLA (CAMPO1,CAMPO2,CAMPO3,CAMPON) VALUES(VAL1,VAL2,VAL3,VALn).
Otra forma mas practica de ver lo anterior es referirnos a la sintaxis de la instrucción, que indica la estructura y conformación adecuada de la sentencia insert de sql.
Figura 4.1 sintaxis de sentencia Insert Sql
En el ejemplo siguiente se codifica en lenguaje de programación
funcion de borrado de un registro de una tabla (lenguaje PhP)
############################################################################## #
function del(campo,tabla,nombre)
{
//campo :nombre del campo por el cual se borra (indice)
// tabla :tabla de donde se borra
//nombre :nombre de la funcion de borrado a generar . Ejemplo Borrarsql
// la Cadena resultante es una función de borrado en el lenguaje php
var parametros=" ";
var a=" ";
//declaracion de la funcion
var inscar="function delete_"+nombre+
;</P><P>parametro de entrada</P>
<P>parametros=inscar+"($"+campo +"){ ";</P>
<P>patron delete</P>
<P>cadenadelete="\"DELETE ";</P>
<P>patron from + nombre tabal + where + condicion</P>
<P>cadenawhere=" FROM "+tabla+ " Where ID=$"+campo+ "\")";</P>
<P>exception</P>
<P>ordie= "or die (\"Error!! in administration : unable execute sql query delete <br> \n\");";</P>
<P>cadenado="$rs = odbc_do($coneccion,";</P>
<P>unificacion de la cadena</P>
<P>cadenado=parametros+cadenado+cadenadelete+cadenawhere+ordie+"\n\n\n" +"}";</P>
<P>return (cadenado);</P>
<P>}selects</P>
<P> #</P>
<P>funcion para una lista automática. </P>
<P>Parametros:</P>
<P>$codigo =Valor seleccionado por el usuario<BR>$nombrelista =Nombre de la lista <BR>$sql =Select de la lista(select codigo,nombre from clientes)<BR>$conn = conexion de base de datos</P>
<P><BR>function lista_genericasnos($codigo,$nombrelista,$sql,$conn)<BR>{<BR>echo "<select name=$nombrelista>";<BR> while (odbc_fetch_row($rs))<BR> {<BR> $codigo1 = odbc_result($rs,1);<BR> $nombre = odbc_result($rs,2);</P>
<P><BR> if($codigo
$codigo1)<BR> {<BR> $selected='selected';<BR> }else{<BR> $selected=" ";<BR> }<BR> echo "<option value=\"$codigo1\" $selected>$nombre</option>";<BR> }<BR> echo "</select>";<BR>}<BR>
#</P> <P>adiciona un registro genericamente</P><P>$tabla =Tabla a adicionar el registro<BR>$campos =Lista de campos separados por comas (a,b,c,d)<BR>$valores =Valores de cada campor (1,2,3)<BR>$conn =Conexion</P>
<P>function adicionaRegistro_generico($tabla,$campos,$valores,$conn)<BR>{</P>
<P> $query1 = "insert into ". $tabla .$campos. " values ". $valores;<BR> odbc_exec($conn, $query1);<BR>}</P>
<P></P>
<P>Trae todos los datos de un registro </P>
<P>$codigo = indide del registro buscado <BR>$camposfuentes =campos de los cuales se saca los datos : a,b,c<BR>$tabla =tabla de la cual se extraen los datos<BR>$ncampos = nuero de campos (en este caso 3 a,b,c)<BR>$campoClave = como se llama el indice de la tabla(campo llave)<BR>$conn =<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: ES; mso-fareast-language: ES; mso-bidi-language: AR-SA">conexión</SPAN></P>
<P>ejemplo Select a,b,c from ejemplo where idejemplo=1<BR></P>
<P>function TraerDatos_registro($codigo,$camposfuentes,$tabla,$ncampos,$campoClave,$conn)<BR>{<BR> $datoss=array();<BR> $sql="select ". $camposfuentes." from ". $tabla." where " .$campoClave ."=".$codigo; </P>
<P> $rs = odbc_exec($conn, $sql);</P>
<P> while (odbc_fetch_row($rs))<BR> {</P>
<P> for ($k=0;$k<$ncampos;$k++){<BR> $datoss[$k] = odbc_result($rs,$k+1);</P>
<P> }</P>
<P> }while<BR> return($datoss); </P>
<P></P>
<P>Modificar datos en un registro</P>
<P>$tabla = tabla a la que se le modificaran los registros<BR>$condición =campo=valor,campo2=valor2....campon=valorn<BR>$campo =campo llave da la tabla eje. Codigo <BR>$registro = indice del registro a modificar</P>
<P>$conn =<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: ES; mso-fareast-language: ES; mso-bidi-language: AR-SA">conexión</SPAN></P>
<P><STRONG>sql=update clientes set nombre="nuevo nombre" where codigo=3</STRONG></P>
<P>function modificar_registro_tipo($tabla,$condicion,$campo,$registro,$tipo,$conn)<BR>{<BR>$sql="update ". $tabla . " set ". $condicion . " where ". $campo ." = ".$registro ;</P>
<P> if(!odbc_exec($conn,$sql)){<BR> trigger_error ("Error [modificando] : al momento de modificar ", E_USER_ERROR);<BR> return false;<BR> }<BR>}</P>
<P>#</P>
<P>Se pude pensar en un programa basico de generación de sentencias sql como el de la figura siguiente.</P>
<P> <IMG src="http://www.wikilearning.com/imagescc/10114/9278_4_2.jpg"></P∞>
<P><STRONG> </STRONG> <STRONG><STRONG>Figura 4.2 Software básico de Generación de sentencias Sql</STRONG></STRONG> </P>
<P>El objetivo es brindarle al lector ideas basicas, que sean un aliciente para crear programas de <STRONG>generación de código</STRONG>, que hasta hoy solo las grandes compañias de software han desarrollado y vendido a un eleveado costo.</P>
<P>Cuando se escriben lineas de codigo fuente; muchas de estas lineas se repetiran, y ¿porque volverlas a escribir, cuando se pueden generar?.</P>""
Opiniona sobre 'Generadores de Codigo - Reconocimiento de Patrones' (0)
Opina sobre este curso gratis |
