paser af tekstfilter og hente SQL udtræk
hejHvordan laver man en parser som kan hente select sætninger ud af listen og retunere tabeller og feltnavne.
Jeg har lavet en løsning - som fungere i 80% af tilfældende.
Det jeg gør er at lave en liste over alle tabeller og felter i databasen, trække reserverede sql ord ud og så har jeg rå mængden tilbage. Allerførst griber jeg fat i de sætninger som indeholder ordet select.
Min løsninger ser sådant - nederst er der en xml fil som viser et eksempel på hvordan den fil som skal scannes kan se ud.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public DataSet ds = new DataSet();
ArrayList AfhaengerAf = new ArrayList();
ArrayList BrugesAf = new ArrayList();
int iPosition = 0;
string FileName = string.Empty;
struct DatabaseStruktur
{
public string DatabaseName;
public string Table_Name;
public string Table_Field_Name;
}
struct DatabaseStruktur_SP
{
public string DatabaseName;
public string SP_Name;
}
struct SQLFileWord
{
public string Word;
public bool KeyWord;
public int position;
}
struct SQLSelect
{
public int StartIndex;
public int StopIndex;
public ArrayList Select;
public string ProcName;
}
ArrayList DatabaseStrukturListe = new ArrayList();
ArrayList SQLFileWordsList = new ArrayList();
ArrayList slSQLKeywords = new ArrayList();
ArrayList SQLSelectList = new ArrayList();
ArrayList Procedures = new ArrayList();
ArrayList DependList = new ArrayList();
string SelSelText = string.Empty;
public Form1()
{
InitializeComponent();
}
void ScanFile(string FileName)
{
FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(fs);
string line;
while ((line = reader.ReadLine()) != null)
{
this.listBox1.Items.Add(line);
string[] sl = line.Split(' ','.');
foreach (string s in sl)
{
if (s != "")
{
// if (s != "--")
{
// if (!s.Contains("'"))
{
// if (!s.Contains("<"))
{
// if (!s.Contains(">"))
{
// if (!s.Contains(@"\"))
{
// if (!s.Contains("/"))
{
// if (!s.Contains("="))
{
// if (!s.Contains("-"))
{
SQLFileWord sqlword = new SQLFileWord();
sqlword.Word = s;
if (!isKeyWord(s.ToUpper()))
{
sqlword.KeyWord = false;
}
else
{
sqlword.KeyWord = true;
}
sqlword.position = SQLFileWordsList.Count;
SQLFileWordsList.Add(sqlword);
}
}
}
}
}
}
}
}
}
}
}
reader.Close();
}
string ScanListForProc(int StopIndex)
{
string ProcedureName = string.Empty;
for (int index = 0; index < StopIndex; index++)
{
if (((SQLFileWord)SQLFileWordsList[index]).Word.ToUpper() == "PROC")
{
if ((index + 1) < SQLFileWordsList.Count)
{
ProcedureName = ((SQLFileWord)SQLFileWordsList[index + 1]).Word;
}
}
}
return ProcedureName;
}
void ScanListForSelect()
{
for (int index = 0; index < SQLFileWordsList.Count; index++)
{
//if (((SQLFileWord)SQLFileWordsList[index]).KeyWord)
{
if (((SQLFileWord)SQLFileWordsList[index]).Word.ToUpper().Contains("SELECT"))
{
SQLSelect sSelect = new SQLSelect();
sSelect.Select = new ArrayList();
sSelect.StopIndex = index;
sSelect.ProcName = ScanListForProc(index);
if (SQLSelectList.Count > 0)
{
sSelect.StartIndex = ((SQLSelect)SQLSelectList[SQLSelectList.Count - 1]).StopIndex;
}
string sFrom = string.Empty;
bool KeyWordFound = false;
for (int i = sSelect.StartIndex; i < sSelect.StopIndex; i++)
{
sSelect.Select.Add(((SQLFileWord)SQLFileWordsList[i]).Word);
if (((SQLFileWord)SQLFileWordsList[i]).Word.ToUpper() == "FROM")
{
for(int j = i; j<sSelect.StopIndex;j++)
{
if (!((SQLFileWord)SQLFileWordsList[j]).KeyWord)
{
if (!KeyWordFound)
{
sFrom = sFrom + " " + ((SQLFileWord)SQLFileWordsList[j]).Word;
}
}
if (((SQLFileWord)SQLFileWordsList[j]).KeyWord)
{
if (((SQLFileWord)SQLFileWordsList[j]).Word.ToUpper() != "FROM")
{
KeyWordFound = true;
}
}
}
}
}
string selectSQL = string.Empty;
foreach (object o in sSelect.Select)
{
selectSQL = selectSQL + " " + o.ToString().Trim();
}
if (selectSQL.ToUpper().IndexOf("RAADATA") > 0)
{
string ProcName = sSelect.ProcName.ToString() + ";;";
if (ProcName.Contains("dt_"))
{
ProcName = "";
}
if (ProcName == ";;")
{
ProcName = "";
}
this.listBox4.Items.Add(ProcName + selectSQL);
}
SQLSelectList.Add(sSelect);
}
}
}
}
void ReadSQLFileList(string FileName)
{
FileStream fs = new FileStream(@"C:\\SQLKeyWords.txt", FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(fs);
string line;
while ((line = reader.ReadLine()) != null)
{
string[] sl = line.Split(' ');
foreach(string s in sl)
{
if (s.Trim() != "")
{
slSQLKeywords.Add(s.ToUpper());
}
}
}
reader.Close();
slSQLKeywords.Add("<");
slSQLKeywords.Add(">");
slSQLKeywords.Add("!");
slSQLKeywords.Add("/");
slSQLKeywords.Add("\\");
slSQLKeywords.Add(":");
slSQLKeywords.Add("=");
slSQLKeywords.Add("-");
}
bool isKeyWord(string FieldName)
{
foreach (object o in slSQLKeywords)
{
if (o.ToString().ToUpper().Contains(FieldName))
{
return true;
}
}
return false;
}
private void ReadDatabaseTolist()
{
foreach(DataTable dt in this.raadataDataSet.Tables)
{
foreach(DataColumn dc in dt.Columns)
{
DatabaseStruktur dstrukt = new DatabaseStruktur();
dstrukt.DatabaseName = "RAADATA";
dstrukt.Table_Name = dt.TableName;
dstrukt.Table_Field_Name = dc.ColumnName;
DatabaseStrukturListe.Add(dstrukt);
}
}
}
private void BuildDependList()
{
/*string sDefinition = string.Empty;
foreach(DataRow dr in ds.Tables["SP"].Rows)
{
{
ListViewItem lv = new ListViewItem();
this.listView1.Items.Add(
this.listBox2.Items.Add(dr.ItemArray[0].ToString().Trim());
sDefinition = dr.ItemArray[6].ToString().Trim();
}
}*/
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void CreateDatabaseXMLDocument(string DBName)
{
}
private ArrayList GetTabelList()
{
return null;
}
private void button4_Click(object sender, EventArgs e)
{
BuildTreeView();
}
private void lsTabeller_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void BuildTreeView()
{
}
private void HentLister(string TableName)
{
AfhaengerAf.Clear();
BrugesAf.Clear();
try
{
foreach (DataRow dr in ds.Tables["Table_Dependencies"].Rows)
{
if (TableName.Trim() == dr.ItemArray[0].ToString())
{
AfhaengerAf.Add(dr.ItemArray[1].ToString());
}
}
}
catch (Exception exp)
{
}
try
{
foreach (DataRow dr in ds.Tables["Table_Dependencies"].Rows)
{
if (TableName.Trim() == dr.ItemArray[1].ToString())
{
BrugesAf.Add(dr.ItemArray[0].ToString());
}
}
}
catch (Exception exp)
{
}
}
private void listBox1_Click(object sender, EventArgs e)
{
//this.textBox2.Text = listBox1.SelectedItem.ToString() ;
ScanTabeller(true);
}
private void listBox4_Click(object sender, EventArgs e)
{
this.textBox2.Text = listBox4.SelectedItem.ToString();
this.SelSelText = listBox4.SelectedItem.ToString();
ScanTabeller(true);
// MessageBox.Show(this.listBox4.SelectedItem.ToString());
}
private void ScanTabeller(bool clear)
{
if (clear)
{
this.listView1.Items.Clear();
}
foreach(DataTable t in raadataDataSet.Tables)
{
string s = SelSelText;
{
//if (s.ToUpper().IndexOf("."+t.TableName.ToUpper())> 0)
if (s.ToUpper().IndexOf(t.TableName.ToUpper()) > 0)
{
foreach (DataColumn dc in t.Columns)
{
if (s.ToUpper().IndexOf(dc.ColumnName.ToUpper()) > 0)
{
ListViewItem lv = new ListViewItem();
lv.SubItems.Add(dc.ColumnName.ToString());
lv.Text = t.ToString();
int i = listView1.Items.IndexOf(lv);
bool bfound = false;
foreach(ListViewItem tlv in this.listView1.Items)
{
if (tlv.Text == lv.Text)
{
if (tlv.SubItems[1].Text == dc.ColumnName.ToString())
{
bfound = true;
}
}
}
if (SelSelText.IndexOf(";;") == -1)
{
SelSelText = ";;" + SelSelText;
}
if (SelSelText.Contains(";;"))
{
string[] Method = SelSelText.Split(';');
if (Method.Length > 0)
{
if (!Method[0].ToUpper().Contains("SELECT"))
{
lv.SubItems.Add(Method[0]);
}
}
}
if (this.checkBox1.Checked)
{
lv.SubItems.Add(this.FileName);
}
if (!bfound)
{
if (listView1.Items.IndexOf(lv) == -1)
{
listView1.Items.Add(lv);
}
}
}
}
}
}
}
}
private void button1_Click(object sender, EventArgs e)
{
this.listBox4.Items.Clear();
this.SQLFileWordsList.Clear();
this.SQLSelectList.Clear();
this.slSQLKeywords.Clear();
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
if (ofd.FileName != "")
{
this.FileName = ofd.FileName;
ReadSQLFileList("");
ScanFile(ofd.FileName);
ReadDatabaseTolist();
ScanListForSelect();
// ds.ReadXml(ofd.FileName);
foreach (DataTable o in ds.Tables)
{
//this.lsTabeller.Items.Add(o.ToString());
BuildTreeView();
BuildDependList();
}
}
else { this.Close(); }
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog sfile = new SaveFileDialog();
sfile.FileName = this.FileName;
sfile.ShowDialog();
if (sfile.FileName != "")
{
foreach (string s in this.listBox4.Items)
{
SelSelText = s;
ScanTabeller(false);
}
// FileStream fs = new FileStream(sfile.FileName, FileMode.CreateNew, FileAccess.ReadWrite);
StreamWriter writer = new StreamWriter(sfile.FileName);
string line;
foreach(ListViewItem lv in this.listView1.Items)
{
line = lv.Text;
for (int j = 1; j < lv.SubItems.Count; j++)
{
line = line + ";" + lv.SubItems[j].Text;
}
writer.WriteLine(line);
}
writer.Close();
}
}
private void button3_Click(object sender, EventArgs e)
{
Tabeller _tabeller = new Tabeller(this.raadataDataSet);
_tabeller.ShowDialog();
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
char[] charArray;
int i = 0;
string s = this.textBox2.Text.ToString();
this.Text = this.listView1.SelectedItems[0].SubItems[1].Text;
i = s.ToUpper().IndexOf(" " + this.listView1.SelectedItems[0].SubItems[1].Text.ToUpper());
int j = s.ToUpper().IndexOf("," + this.listView1.SelectedItems[0].SubItems[1].Text.ToUpper());
this.label2.Text = i.ToString() + " " + j.ToString();
}
}
}
___________________________________________________
<?xml version="1.0" encoding="utf-8"?>
<dtsdoc>
<Package>
<PackageName>Solvens</PackageName>
<PackageId>{FFD694BB-8930-4EEF-9C8D-92D67B1F24E6}</PackageId>
<Version>{9ADE4448-B85D-4A47-934F-BA08FA36067E}</Version>
<Description>
</Description>
<AutoCommitTransaction>true</AutoCommitTransaction>
<CreationDate>2006-05-08T13:22:39.0000000+02:00</CreationDate>
<CreatorComputerName>SY001578</CreatorComputerName>
<CreatorName>SYDBANK\bjchr</CreatorName>
<FailOnError>false</FailOnError>
<LogFileName>
</LogFileName>
<MaxConcurrentSteps>4</MaxConcurrentSteps>
<TransactionIsolationLevel>Cursor stability level</TransactionIsolationLevel>
<UseOLEDBServiceComponents>true</UseOLEDBServiceComponents>
<UseTransaction>true</UseTransaction>
<WriteCompletionStatusToNTEventLog>false</WriteCompletionStatusToNTEventLog>
<ExistCallTree>true</ExistCallTree>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSActiveScriptTask_1</TaskName>
<Description>dato (unregistered version)</Description>
<ActiveScriptTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSActiveScriptTask_1</TaskName>
<Description>dato</Description>
<FunctionName>Main</FunctionName>
<ActiveXScript>'**********************************************************************
' Visual Basic ActiveX Script
'************************************************************************
Function LPad(sWhat, sWith, iToLength)
dim s
s = sWhat
While len(s) < iToLength
s = sWith & sWhat
Wend
LPad = s
End Function
Function Main()
dim ds
dim dt
dim mdt
ds = left(DTSGlobalVariables("datostring").value, 4) & "-" & mid(DTSGlobalVariables("datostring").value, 5, 2) & "-01" ' & right(DTSGlobalVariables("datostring").value, 2)
if isdate(ds) then
dt = cdate(ds)
else
dt = dateadd("m", cdate(Year(Now()) & "-" & LPad(month(Now()), "0", 2) & "-01"), -1)
end if
mdt = dateadd("d", dateadd("m", 1, dt), -1)
DTSGlobalVariables("max_dato").value = mdt
DTSGlobalVariables("min_dato").value = dateadd("d", dateadd("m", -5, dt), -1)
DTSGlobalVariables("datostring").value = Year(mdt) & LPad(month(mdt), "0", 2) & day(mdt)
Main = DTSTaskExecResult_Success
End Function
</ActiveXScript>
<ScriptLanguage>VBScript</ScriptLanguage>
</ActiveScriptTask>
</Task>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_1</TaskName>
<Description>Sikkerheder - Foundation (unregistered version)</Description>
<ExecutePackageTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_1</TaskName>
<Description>Sikkerheder - Foundation</Description>
<PackageId>{DAEB6B5E-4065-41EC-9197-0F3A90C373BA}</PackageId>
<ExecutePackageName>Solvens - Sikkerheder Foundation II</ExecutePackageName>
<PackagePassword>
</PackagePassword>
<ServerName>sy018s222</ServerName>
<ServerPassword>
</ServerPassword>
<ServerUserName>
</ServerUserName>
<FileName>
</FileName>
<RepositoryDatabaseName>
</RepositoryDatabaseName>
<UseRepository>false</UseRepository>
<UseTrustedConnection>true</UseTrustedConnection>
</ExecutePackageTask>
</Task>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_2</TaskName>
<Description>Exposure (unregistered version)</Description>
<ExecutePackageTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_2</TaskName>
<Description>Exposure</Description>
<PackageId>{D4AD22A8-C42A-472B-9E6A-C5B4DEAEEF16}</PackageId>
<ExecutePackageName>Solvens - Exposure</ExecutePackageName>
<PackagePassword>
</PackagePassword>
<ServerName>sy018s222</ServerName>
<ServerPassword>
</ServerPassword>
<ServerUserName>
</ServerUserName>
<FileName>
</FileName>
<RepositoryDatabaseName>
</RepositoryDatabaseName>
<UseRepository>false</UseRepository>
<UseTrustedConnection>true</UseTrustedConnection>
</ExecutePackageTask>
</Task>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_3</TaskName>
<Description>Fordel sikkerheder (unregistered version)</Description>
<ExecutePackageTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_3</TaskName>
<Description>Fordel sikkerheder</Description>
<PackageId>{C86C2FDD-C190-4415-A2CD-29E9813A150E}</PackageId>
<ExecutePackageName>Solvens fordeling</ExecutePackageName>
<PackagePassword>
</PackagePassword>
<ServerName>sy018s222</ServerName>
<ServerPassword>
</ServerPassword>
<ServerUserName>
</ServerUserName>
<FileName>
</FileName>
<RepositoryDatabaseName>
</RepositoryDatabaseName>
<UseRepository>false</UseRepository>
<UseTrustedConnection>true</UseTrustedConnection>
</ExecutePackageTask>
</Task>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_4</TaskName>
<Description>Sikkerheder - IRB Retail (unregistered version)</Description>
<ExecutePackageTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecutePackageTask_4</TaskName>
<Description>Sikkerheder - IRB Retail</Description>
<PackageId>{1D9B00F1-503C-49B4-BB3C-0DF4F705A555}</PackageId>
<ExecutePackageName>Solvens - Sikkerheder IRB Retail</ExecutePackageName>
<PackagePassword>
</PackagePassword>
<ServerName>SY018S222</ServerName>
<ServerPassword>
</ServerPassword>
<ServerUserName>
</ServerUserName>
<FileName>
</FileName>
<RepositoryDatabaseName>
</RepositoryDatabaseName>
<UseRepository>false</UseRepository>
<UseTrustedConnection>true</UseTrustedConnection>
</ExecutePackageTask>
</Task>
<Task>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecuteSQLTask_1</TaskName>
<Description>Forflytter exposure til kautionist under foundation (unregistered version)</Description>
<ExecuteSQLTask>
<PackageName>Solvens</PackageName>
<TaskName>DTSTask_DTSExecuteSQLTask_1</TaskName>
<Description>Forflytter exposure til kautionist under foundation</Description>
<ConnectionId>1</ConnectionId>
<ConnectionName>O1</ConnectionName>
<Timeout>0</Timeout>
<SQLStatement>update solv_exposure
set
dkautionsid = a.dkautionsid
, kaution_daekket_beloeb = a.daekket_beloeb
from solv_kautioner as a
where
solv_exposure.dexposurenr = a.sikkerhed_for
and
a.sik_for_tabel = 'K'
and
solv_exposure.type = 'K'
and
solv_exposure.PE = 'E'
--Finder antal konti under refnummeret
select drefnr, count(dexposurenr) as ctKTO, sum(saldo2) as smSaldo
into #t1
from solv_exposure
group by drefnr
--Fordeler kautioner for refnummer på de konti der ligger under
update solv_exposure set dkautionsid = a.dkautionsid, kaution_daekket_beloeb = a.daekket_beloeb * saldo2 / smSaldo
from solv_kautioner as a join #t1 on a.sikkerhed_for = #t1.drefnr
where
solv_exposure.drefnr = a.sikkerhed_for
and
a.sik_for_tabel = 'R'
and
solv_exposure.PE = 'E'
update solv_exposure
set
kaution_daekket_beloeb = saldo2
where
dkautionsid is not null
and
kaution_daekket_beloeb is null
</SQLStatement>
<InputGlobalVariableNames>
</InputGlobalVariableNames>
<OutputGlobalVariableNames>
</OutputGlobalVariableNames>
</ExecuteSQLTask>
</Task>
<Connection>
<PackageName>Solvens</PackageName>
<ConnectionId>1</ConnectionId>
<ConnectionName>O1</ConnectionName>
<Catalog>TestOrganisation</Catalog>
<DataSource>SY018S222</DataSource>
<Description>
</Description>
<User>
</User>
</Connection>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSActiveScriptTask_1</StepName>
<Description>dato</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSActiveScriptTask_1</TaskName>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSActiveScriptTask_1</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_1</TargetStep>
</OnSuccessCall>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSActiveScriptTask_1</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_2</TargetStep>
</OnSuccessCall>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSActiveScriptTask_1</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_4</TargetStep>
</OnSuccessCall>
</Step>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_1</StepName>
<Description>Sikkerheder - Foundation</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSExecutePackageTask_1</TaskName>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_1</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_3</TargetStep>
</OnSuccessCall>
</Step>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_2</StepName>
<Description>Exposure</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSExecutePackageTask_2</TaskName>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_2</StepName>
<TargetStep>DTSStep_DTSExecuteSQLTask_1</TargetStep>
</OnSuccessCall>
</Step>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_3</StepName>
<Description>Fordel sikkerheder</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSExecutePackageTask_3</TaskName>
</Step>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_4</StepName>
<Description>Sikkerheder - IRB Retail</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSExecutePackageTask_4</TaskName>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecutePackageTask_4</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_3</TargetStep>
</OnSuccessCall>
</Step>
<Step>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecuteSQLTask_1</StepName>
<Description>Forflytter exposure til kautionist under foundation</Description>
<AddGlobalVariables>true</AddGlobalVariables>
<CloseConnection>false</CloseConnection>
<CommitSuccess>false</CommitSuccess>
<DisableStep>false</DisableStep>
<ExecuteInMainThread>false</ExecuteInMainThread>
<FunctionName>
</FunctionName>
<IsPackageDSORowset>false</IsPackageDSORowset>
<JoinTransactionIfPresent>false</JoinTransactionIfPresent>
<RelativePriority>DTSStepRelativePriority_Normal</RelativePriority>
<RollBackFailure>false</RollBackFailure>
<ScriptLanguage>VBScript</ScriptLanguage>
<TaskName>DTSTask_DTSExecuteSQLTask_1</TaskName>
<OnSuccessCall>
<PackageName>Solvens</PackageName>
<StepName>DTSStep_DTSExecuteSQLTask_1</StepName>
<TargetStep>DTSStep_DTSExecutePackageTask_3</TargetStep>
</OnSuccessCall>
</Step>
<GlobalVariable>
<PackageName>Solvens</PackageName>
<Name>datostring</Name>
<Value>20050430</Value>
</GlobalVariable>
<GlobalVariable>
<PackageName>Solvens</PackageName>
<Name>max_dato</Name>
<Value>30-04-2005 00:00:00</Value>
</GlobalVariable>
<GlobalVariable>
<PackageName>Solvens</PackageName>
<Name>min_dato</Name>
<Value>31-10-2004 00:00:00</Value>
</GlobalVariable>
</Package>
<DocumentProperties>
<dtsdocVersion>1.2.2 build 118</dtsdocVersion>
<Date>2008-04-17T09:46:50.6552878+02:00</Date>
<FormattedDate>17-04-2008</FormattedDate>
</DocumentProperties>
</dtsdoc>