2012-12-20 6 views
6

Ho un file .sql con definizioni di stored procedure.Come analizzare una firma di stored procedure in C# dal testo semplice

Ho bisogno di scrivere un piccolo programma in C# che legge il file e ottiene un elenco con le firme delle stored procedure.

Ad esempio, questa lista dovrebbe essere così:

[dbo].[procedureOne] (int, int, varchar(250) out, nvarchar) 
[dbo].[procedureTwo] (int, varchar(255)) 
[dbo].[procedureThree] () 
[dbo].[amazingSP] (datetime, datetime) 

C'è un modo per farlo utilizzando Regex?

Qual è l'approccio migliore?

+0

Qual è la struttura dell'input? – Woot4Moo

+0

l'input è un file .sql, con stored procedure come "CREATE PROCEDURE [dbo]. [AmazingSP] param1 int, param2 datetime ... etc" – Herno

+0

Quindi il file non ha alcuna informazione extra come lo schema, solo una scala CREATE PROC ... – Woot4Moo

risposta

0

Alla fine, ho implementato a mano un parser di firma in C#. Mi ci sono voluti alcuni giorni per lucidarlo, perché c'erano sempre alcuni casi che hanno rotto il parser causando risultati inaspettati. E 'stato divertente codificarlo comunque. Caricherò il codice quando avrò finito se qualcuno ne ha bisogno.

1

Forse potresti farlo con Regex, ma penso che scrivere un parser sarebbe in realtà più facile in questo caso.

Se si desidera, è possibile provare Irony, che è molto semplice da usare.

Problemi correlati