IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

WINCC : VBscript & Delphi7


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut WINCC : VBscript & Delphi7
    Bonjour,

    Voici un programme en VBscript (donnée en exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)               
    Dim sPro, sDsn, sSer,sCon, sSql
    Dim sVid, sVal, lRet, sRel
    Dim V,Sum,Avg,Std
    Dim conn, oRs, oCom, oList, oItem
    Dim m,n,s,nRec
    Dim strDateTime, iMs 
    
    // 0.0 Get parameters from picture
    sDsn = ScreenItems("laDSN").Text
    sSer = ScreenItems("laServer").Text
    sSql = ScreenItems("laSql").Text
    //1.1 Make connection string for ADODB as indicated below
    //Provider=WinCCOLEDBProvider.1;Catalog=CC_V6_Demo3_03_02_04_16_19_15R;Data Source=.\WinCC"
    // 1.2 Define command text in sSql for WinCC compressed archives, relative time
    sPro = "Provider=WinCCOLEDBProvider.1;"
    sDsn = "Catalog=" + sDsn + ";"
    sSer = "Data Source=" + sSer + "\WinCC"
    sCon = sPro + sDsn + sSer
    nRec = NMAX
    // "TAG:R,1,'0000-00-00 00:05:00.000','0000-00-00 00:00:00.000'"
        lRet = MsgBox("Opened with " & vbCr & sCon & vbCr & sSql & vbCr, vbOKCancel)
        If lRet <> 1 Then Exit Sub
    // 2.1 Make connection
        Set conn = CreateObject("ADODB.Connection")
        conn.ConnectionString = sCon
        conn.CursorLocation = adUseClient   //3
        conn.Open
    // 2.2 Use command text for query
        Set oRs = CreateObject("ADODB.Recordset")
        Set oCom = CreateObject("ADODB.Command")
        oCom.CommandType = 1 //adCmdText  = 1
        Set oCom.ActiveConnection = conn
    //***** ma ligne Sql est TAG:R,1,'0000-00-00 00:05:00.000','0000-00-00 00:00:00.000'
    //***** J'ai un peu de mal à comprendre cette ligne
        
    oCom.CommandText = sSql
    // 2.3 Fill the recordset
        Set oRs = oCom.Execute
        m = oRs.Fields.Count
    // 3.0 Fill standard listview object with recordset
        Set oList = ScreenItems("ListTable")
        oList.ListItems.Clear
        If(m>0) Then
    	    oRs.MoveFirst
    	    n = 0
    	    Sum = 0
    	    Avg = 0
    	    Std=0
    	    Do While Not oRs.EOF
    	        n = n + 1
    	        V = oRs.Fields(2).Value
    	        Sum = Sum +V
    	        Std = Std + V ^ 2
    	         If( n < nRec ) Then
      	            SplitDateTimeAndMs oRS.Fields(1).Value, strDateTime, iMs
    		        s = FormatDateTime(strDateTime,2) & " " & FormatDateTime(strDateTime,3)
    		        Set oItem = oList.ListItems.Add()
    	            oItem.Text = s	            
    	            oItem.SubItems(1) = iMs
    	            oItem.SubItems(2) = FormatNumber(V, 4)
    	            oItem.SubItems(3) = Hex(oRs.Fields(4).Value) // vrati
    	          End If
     	        oRs.MoveNext
    	    Loop
    	    oRs.Close
    	    If( n>1) Then Avg = Sum / n
    	    If (n>2) Then Std = Sqr((Std - n * Avg ^ 2) / (n - 1))
    	    HMIRuntime.Tags("Count").Write n
    	    HMIRuntime.Tags("Sum").Write Sum
    	    HMIRuntime.Tags("Avg").Write Avg
    	    HMIRuntime.Tags("Std").Write Std
    	    
        Else
         
        End If
        Set oRs = Nothing
        conn.Close
        Set conn = Nothing
    
    End Sub
    J'aimerais faire la même chose en Delphi7 jusqu'au point 2.3

    J'ai essayer les composants TADOCommand, TADODataSet.
    Mais cela ne marche pas.

    Qui peux m'aider ?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Merci de fournir le Code Delphi que tu as déjà fait !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut
    voila mon code en delphi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, DBTables;
     
    type
      TForm1 = class(TForm)
        ADO: TADOConnection;
        EdSql: TEdit;
        Bcon: TButton;
        EdScom: TEdit;
        Button1: TButton;
        DataSource1: TDataSource;
        DBGrid3: TDBGrid;
        adoExectute: TADOCommand;
        Button4: TButton;
        ADODataSet1: TADODataSet;
     
     
        procedure ADOConnectComplete(Connection: TADOConnection;
          const Error: Error; var EventStatus: TEventStatus);
     
        procedure Button4Click(Sender: TObject);
        procedure ADOExecuteComplete(Connection: TADOConnection;
          RecordsAffected: Integer; const Error: Error;
          var EventStatus: TEventStatus; const Command: _Command;
          const Recordset: _Recordset);
        procedure BconClick(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    //**********************************
    //  Afficher Status de Adoconnection
    //**********************************
    procedure TForm1.ADOConnectComplete(Connection: TADOConnection;
      const Error: Error; var EventStatus: TEventStatus);
    begin
    if  EventStatus = esOK              then ShowMessage('Ouverture ADOConnect : Ok');
    if  EventStatus = esErrorsOccured   then ShowMessage('Ouverture ADOConnect : esErrorsOccured');
    if  EventStatus = esCancel          then ShowMessage('Ouverture ADOConnect : esCancel');
    if  EventStatus = esErrorsOccured   then ShowMessage('Ouverture ADOConnect :esErrorsOccured');
    if  EventStatus = esUnwantedEvent   then ShowMessage('Ouverture ADOConnect :esUnwantedEvent')
    end;
    //**********************************
    //     Lancer AdoExecute
    //**********************************
    procedure TForm1.Button4Click(Sender: TObject);
    begin
     
    //*****************************************************
    //    c'est ici que le programme plante
    //*****************************************************
    ADODataSet1.Recordset:=adoExectute.Execute(edsql.Text);
     
    end;
    //********************************
    //  Afficher staus de Adoexecute
    //**********************************
    procedure TForm1.ADOExecuteComplete(Connection: TADOConnection;
      RecordsAffected: Integer; const Error: Error;
      var EventStatus: TEventStatus; const Command: _Command;
      const Recordset: _Recordset);
    begin
    if  EventStatus = esOK              then ShowMessage('Adoexectue : Ok avec '+IntTostr(Recordset.MaxRecords)+' Lignes');
    if  EventStatus = esErrorsOccured   then ShowMessage('Adoexectue : esErrorsOccured');
    if  EventStatus = esCancel          then ShowMessage('Adoexectue : esCancel');
    if  EventStatus = esErrorsOccured   then ShowMessage('Adoexectue : esErrorsOccured');
    if  EventStatus = esUnwantedEvent   then ShowMessage('Adoexectue : esUnwantedEvent');
    ADODataSet1.Open;
    end;
    //********************************
    //     Open ado
    //**********************************
    procedure TForm1.BconClick(Sender: TObject);
    begin
    ado.ConnectionString:=EdScom.text;
    ado.Open;
    end;
    //********************************
    //    close ado
    //**********************************
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ado.Close;
    end;
     
    end.
    L'ouverture de ADO se passe bien.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Maintenant, comme la Connexion avec EdScom, tu fais un Edit pour écrire le requête que tu souhaites dans un TADODataSet

    Pour "TAG:R ...", il faut que tu consulte comment fonctionne les speudo procédures de WinCC, ce n'est pas du SQL qui faut lui fournir mais des opérations de son langage spécifique pour récupérer les données durant une période des temps avec une fréquence d'echantillonnage avec en plus du speudo SQL pour les fitres WHERE et ORDER

    Cela ne dépend de Delphi 7 mais de ta connaissance des automates et des données de mesures que tu souhaite relever !

    TAG:R,1,'0000-00-00 00:05:00.000','0000-00-00 00:00:00.000'
    Recupére les Données à partir de la 5eme minute jusqu'à la fin de l'archive sans restriction particulière ni fréquence précise

    In the case of tags, the expression in "SQL Query" must have the following
    syntax: "Tag:R,<ValueID/ValueName>,<timea>,<timeb>
    "<timea>" and "<timeb>" have the format "YYYY-MM-DD hh:mm:ss.uuu" , whereby the value for milliseconds "uuu" must always be in three digits.

    Where "<timea>" equals
    "0000-00-00 00:00:00.000" (ZERO), the query starts from the start of the
    archive database.

    Where "<timeb>" equals "0000-00-00 00:00:00.000", the
    query ends at the end of the archive database.

    "<timea>" and "<timeb>" cannot both be ZERO simultaneously.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Maintenant, comme la Connexion avec EdScom, tu fais un Edit pour écrire le requête que tu souhaites dans un TADODataSet
    Mais je ne sais la requette que je dois faire

    J'utilise WINCC 2007 qui un logiciel de supervision de siemens. Ce logiciel va chercher des données dans un automates et il archive ces données dans une basse de données SQL server 2005.

    Siemens donne des exemples en VB pour aller rechercher les données.

    Mon but est d'aller récupéré les données en delphi7.

    Citation Envoyé par ShaiLeTroll Voir le message
    In the case of tags, the expression in "SQL Query" must have the following

    syntax: "Tag:R,<ValueID/ValueName>,<timea>,<timeb>
    Comment faire cela en delphi ?

  6. #6
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Bon le plus simple est d'ouvrir ta base de données avec un outil inclus dans SQLServer ou avec :
    http://sourceforge.net/projects/axbase/

    et d'analyser les tables et les données contenues puis d'en déduire les requètes SQL qui t'intéressent.

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ADODataSet1.Connection := ADO;
    ADODataSet1.CommandText := edsql.Text:
    ADODataSet1.Open;
    oublie ADOExecuteComplete et RecordSet, c'est la méthode VB, en Delphi, les composants ADO sont plus simples !


    Citation Envoyé par jeanmy Voir le message
    Mais je ne sais la requette que je dois faire

    J'utilise WINCC 2007 qui un logiciel de supervision de siemens.

    Comment faire cela en delphi ?
    Tu sautes les etapes, se connecte à type de speudo base n'est pas le plus aisée, tu aurais du essayer d'abord les tutoriels ADO sur SQL Server, une fois la maitrise des objets ADO en Delphi (qui sont plus simple que via VBS), tu pouvais passer à l'étape plus complexe de WinCC

    Pense à lire la Doc de WinCC mais je ne connais pas pas ce langage simplifié d'obtention de données de mesure de Siemens, tu devrais essayer de modifier le VBS pour comparer les résultats entre VBS et Delphi !


    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    In the case of tags, the expression in "SQL Query" must have the following
    syntax: "Tag:R,<ValueID/ValueName>,<timea>,<timeb>
    "<timea>" and "<timeb>" have the format "YYYY-MM-DD hh:mm:ss.uuu" , whereby the value for milliseconds "uuu" must always be in three digits.

    Where "<timea>" equals
    "0000-00-00 00:00:00.000" (ZERO), the query starts from the start of the
    archive database.

    Where "<timeb>" equals "0000-00-00 00:00:00.000", the
    query ends at the end of the archive database.

    "<timea>" and "<timeb>" cannot both be ZERO simultaneously.
    Tu as trouvé cette information ou ?

    J'ai déjà recherché dans la doc de WINCC. Mais je n'ai rien trouvé. J'ai regardé les différente tables avec le logiciel Axbase. Mais je n'ai pas trouvé la "Bonne table"

  9. #9
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Fichier PDF: WinCC_ConnectivityPack_en.pdf

    Je ne peux pas t'en dire, plus j'ai juste eu le culot d'interprêté cette doc, je ne connaissais pas WinCC !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut
    ShaiLeTroll
    merci pour ton lien

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Par défaut
    Ce weeck-end, j'ai trouvé un exemple sur le net.

    donc j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, DBTables;
     
    type
      TForm1 = class(TForm)
        EdSql: TEdit;
        Bcon: TButton;
        EdScom: TEdit;
        Button1: TButton;
        Button4: TButton;
        ADOConnection1: TADOConnection;
        ADOCommand1: TADOCommand;
        ADODataSet1: TADODataSet;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        ADOConnection_Catalogue: TADOConnection;
        ADOCommand_Catalogue: TADOCommand;
        ADODataSet_Catalogue: TADODataSet;
        Label1: TLabel;
        ComboBox1: TComboBox;
     
     
        procedure ADOConnectComplete(Connection: TADOConnection;
          const Error: Error; var EventStatus: TEventStatus);
     
        procedure Button4Click(Sender: TObject);
        procedure ADOExecuteComplete(Connection: TADOConnection;
          RecordsAffected: Integer; const Error: Error;
          var EventStatus: TEventStatus; const Command: _Command;
          const Recordset: _Recordset);
        procedure BconClick(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    //**********************************
    //  Afficher Status de Adoconnection
    //**********************************
    procedure TForm1.ADOConnectComplete(Connection: TADOConnection;
      const Error: Error; var EventStatus: TEventStatus);
    begin
    if  EventStatus = esOK              then ShowMessage('Ouverture ADOConnect : Ok');
    if  EventStatus = esErrorsOccured   then ShowMessage('Ouverture ADOConnect : esErrorsOccured');
    if  EventStatus = esCancel          then ShowMessage('Ouverture ADOConnect : esCancel');
    if  EventStatus = esErrorsOccured   then ShowMessage('Ouverture ADOConnect :esErrorsOccured');
    if  EventStatus = esUnwantedEvent   then ShowMessage('Ouverture ADOConnect :esUnwantedEvent')
    end;
    //**********************************
    //     Lancer AdoExecute
    //**********************************
    procedure TForm1.Button4Click(Sender: TObject);
    begin
      ADOConnection1.ConnectionString := edscom.Text;
      ADOCommand1.CommandText := Edsql.Text;
      ADOConnection1.Connected := True;
      ADODataSet1.Recordset := AdoConnection1.Commands[0].Execute;
    end;
    //********************************
    //  Afficher staus de Adoexecute
    //**********************************
    procedure TForm1.ADOExecuteComplete(Connection: TADOConnection;
      RecordsAffected: Integer; const Error: Error;
      var EventStatus: TEventStatus; const Command: _Command;
      const Recordset: _Recordset);
    begin
    if  EventStatus = esOK              then ShowMessage('Adoexectue : Ok avec '+IntTostr(Recordset.MaxRecords)+' Lignes');
    if  EventStatus = esErrorsOccured   then ShowMessage('Adoexectue : esErrorsOccured');
    if  EventStatus = esCancel          then ShowMessage('Adoexectue : esCancel');
    if  EventStatus = esErrorsOccured   then ShowMessage('Adoexectue : esErrorsOccured');
    if  EventStatus = esUnwantedEvent   then ShowMessage('Adoexectue : esUnwantedEvent');
    ADODataSet1.Open;
    end;
    //********************************
    //     Open ado
    //**********************************
    procedure TForm1.BconClick(Sender: TObject);
    var
      i: Byte;
    begin
     
    if length(ADOConnection_Catalogue.ConnectionString)<10 then
       ADOConnection_Catalogue.ConnectionString := 'Provider=SQLOLEDB.1;' +
                               'Integrated Security=SSPI;' +
      //                         'Persist Security Info=False;'
                               'Initial Catalog=master;' +
                               'Data Source=.\WINCC;'+
      //                         'Use Procedure for Prepare=1;'
                               'Auto Translate=True;'+
                               'Packet Size=4096;';
      //                         'Workstation ID=WINCC_CL1;'
      //                         'Use Encryption for Data=False;'
      //                         'Tag with column collation when possible=False';
      ;
     
     
    ADODataSet_Catalogue.Recordset := AdoConnection_Catalogue.Commands[0].Execute;
    Label1.Caption :='Nombre de ligne trouvé : '+ Inttostr(ADOdataset_Catalogue.Recordset.RecordCount );
     
    if ADODataSet_Catalogue.Recordset.EOF = FALSE then
        begin
        Adodataset_Catalogue.Recordset.MoveFirst; // Pointer sur la premier elements
        for i := 0 to Adodataset_Catalogue.Recordset.RecordCount - 1 do
          begin
            Combobox1.Items.Add(Adodataset_Catalogue.Recordset.Fields[0].Value);
            Adodataset_Catalogue.Recordset.MoveNext
          end;
          Combobox1.Text := Combobox1.Items[0];
          Edscom.Text:='Provider:=WinCCOLEDBProvider.1;'+
                        'Data Source=.\WinCC;'+
                        'Catalog='+Combobox1.text;
        end
        else
          MessageDlg('Attetion : Wincc non installé.',mtError,[mbOk],0);
    end;
    //********************************
    //    close ado
    //**********************************
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ADOConnection_Catalogue.Close;
    end;
     
    end.

  12. #12
    Invité de passage
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Russie

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut jeanmy
    bonjour, pourriez-vous mettre ici l'exemple entier, y compris le code source et les formulaires?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. WinCC Flexible et VBScript
    Par Bullrap dans le forum Automation
    Réponses: 2
    Dernier message: 06/09/2010, 13h00
  2. Réponses: 11
    Dernier message: 19/12/2007, 15h13
  3. Réponses: 4
    Dernier message: 30/11/2007, 10h10
  4. [WinCC-VBScript] lecture de bit
    Par ren973 dans le forum Automation
    Réponses: 7
    Dernier message: 12/07/2007, 16h07
  5. [WinCC-VBScript] lecture de bit
    Par ren973 dans le forum VBScript
    Réponses: 5
    Dernier message: 11/07/2007, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo