Avatar billede coladrenge Nybegynder
17. april 2008 - 10:35 Der er 1 løsning

paser af tekstfilter og hente SQL udtræk

hej

Hvordan 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) &lt; iToLength
      s = sWith &amp; sWhat
  Wend
  LPad = s
End Function

Function Main()
    dim ds
    dim dt
    dim mdt
    ds = left(DTSGlobalVariables("datostring").value, 4) &amp; "-" &amp; mid(DTSGlobalVariables("datostring").value, 5, 2) &amp; "-01" ' &amp; right(DTSGlobalVariables("datostring").value, 2)
    if isdate(ds) then
      dt = cdate(ds)
    else
      dt = dateadd("m", cdate(Year(Now()) &amp; "-" &amp; LPad(month(Now()), "0", 2) &amp; "-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) &amp; LPad(month(mdt), "0", 2) &amp; 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>
Avatar billede coladrenge Nybegynder
24. april 2008 - 10:39 #1
Hej

Der er ikke mange besvarelser på dette spm - derfor lukker jeg det nu :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester