martedì 18 ottobre 2011

From Query To Code

Ecco che cosa succede quando si ha del tempo libero...

Questa è una di quelle cose che generalmente rompe le scatole, dopo aver scritto una 50 di righe di query, c'e' la rottura di trasformarle in codice.

Si quel pallosissimo momento in cui si aggiungono gli apici, si dichiare si scrive e si fa di tutto di più ..

bene con questa classe mi sono risolto anche questo problema, risolto non proprio a me..

public class QueryForLanguage
{ enum language
{
vbnet,
cs,
vb6
}

public string qIN;
public string qOUT;
public language lan;

private void TrasformQuery();
{
qOUT = createQuery(lan);
}

private string createQuery(language lType)
{
return createHeader(lType) + "\r\n" + createBody(lType);
}

private string createBody(language lType)
{
string[] c = qIN.Replace("\n","").Split(new char[]{'\r'});

string output = "";

for (int i = 0; i < c.Length; i++)
{
if (lType == language.cs)
{
output+= "sSqlQuery+=\"" + c[i].Replace("\"","\\\"") + "\";\r\n";
}
else
{
output += "sSqlQuery = sSqlQuery & \"" + c[i].Replace("\"", "\"\"") + "\"\r\n";
}
}

return output;
}

private string createHeader(language lType)
{
if (lType == language.cs)
{
if (txtVariableName.Text.Trim() == "")
{
return "string sSqlQuery =\"\";\r\n ";
}
else
{
return "string "+ txtVariableName.Text.Trim()+ " =\"\";\r\n ";
}
}
else
{
if (txtVariableName.Text.Trim() == "")
{
return "DIM sSqlQuery AS String \r\n sSqlQuery = \"\"";
}
else
{
return "DIM " + txtVariableName.Text.Trim() + " AS String \r\n sSqlQuery = \"\"";
}
}
}
}

Nessun commento: