quarta-feira, 27 de novembro de 2002

Pare de concatenar strings SQL! (Versão VBScript)

Gostei tanto da função enviada pelo Elcio Luiz Ferreira (em JScript) que resolvi refazê-la em VBScript:


<%
'Autor: Fabio A Lopes
'Email: fabio@encode.com.br

Function ExpSQL(sql)
  Dim rg, mts, mt, varnom, varval, varsql
  Set rg = New RegExp
  rg.Pattern = "[=\s]@([\d\w]*)"
  rg.IgnoreCase = True
  rg.Global = True
  Set mts = rg.Execute(sql)
  For Each mt in mts
    varsql = trim(replace(mt.Value,"=",""))
    varnom = replace(varsql,"@","")
    varval = eval(varnom)
    If VarType(varval) = 8 Then varval = "'" & varval & "'"
    sql = replace(sql,varsql,varval,1,1,1)
  Next
  ExpSQL = sql
  Set mts = nothing
  Set rg = nothing
End Function
%>


Como usar:


<%
nome=request.QueryString("nome")
codigo=request.QueryString("codigo")
preco=request.QueryString("preco")

sql=ExpSQL("update produto set nome=@nome, preco=@preco where codigo=@codigo")
conn.Execute(sql)
%>


Esta matéria foi postada originalmente no ASP4Developers por Fabio A Lopes (site), que na época era "analista programador... viciado em internet". Hoje, vai saber...

0 comentários: