Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2013, 15:36   #1
seelenus
Новичок
Джуниор
 
Регистрация: 06.11.2011
Сообщений: 1
По умолчанию OLEDB (из Visual Basic в Delphi)

Народ, подскажите, пожалуйста, с помощью чего можно реализовать в Delphi следующий код, написанный на Visual Basic:
Код:
    
Dim Conn, RecSet, Command, n
    Set Conn = CreateObject("ADODB.Connection")
    Conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog=CC_Arctest_13_06_21_13_41_36R;Data Source=SGES-SVA-TM1\WINCC"
    Conn.CursorLocation = 3
    Conn.Open
    Set RecSet = CreateObject("ADODB.Recordset")
    Set Command = CreateObject("ADODB.Command")
    Command.CommandType = 1
    Set Command.ActiveConnection = Conn
    Command.CommandText = "TAG:R,'ProcessValueArchive\AI1', '2013-7-2 00:00:00.000', '2013-7-3 23:59:59.000'"
    Set RecSet = Command.Execute
    RecSet.MoveFirst
    
    n = 1
    
    Worksheets("Лист1").Cells(n, 1).Value = "ValueID"
    Worksheets("Лист1").Cells(n, 2).Value = "TimeStamp"
    Worksheets("Лист1").Cells(n, 3).Value = "RealValue"
    Worksheets("Лист1").Cells(n, 4).Value = "Quality"
    Worksheets("Лист1").Cells(n, 5).Value = "Flags"
    Do While Not RecSet.EOF
        n = n + 1
        Worksheets("Лист1").Cells(n, 1).Value = CStr(RecSet.Fields(0).Value)
        Worksheets("Лист1").Cells(n, 2).Value = CStr(RecSet.Fields(1).Value)
        Worksheets("Лист1").Cells(n, 3).Value = CStr(RecSet.Fields(2).Value)
        Worksheets("Лист1").Cells(n, 4).Value = CStr(RecSet.Fields(3).Value)
        Worksheets("Лист1").Cells(n, 5).Value = CStr(RecSet.Fields(4).Value)
        RecSet.MoveNext
    Loop
        
    RecSet.Close
    Set RecSet = Nothing
    Set Command = Nothing
    Conn.Close
    Set Conn = Nothing
Здесь данные с WinCC сервера выводятся в Excel. Попробовал через DataSet, в CommandText прописать: TAG:R,'ProcessValueArchive\AI1', '2013-7-2 00:00:00.000', '2013-7-3 23:59:59.000', но Delphi ругается на параметр R.
seelenus вне форума Ответить с цитированием
Старый 06.07.2013, 00:18   #2
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Посмотрите вкладку ADO палитры компонентов, там есть компоненты агрегирующие все задействованные в примере кода классы объектов:
ADODB.Connection -> ADOConnection
ADODB.Recordset+ADODB.Command -> ADOQuery
Т.е. будет что-то типа:
Код:
...
uses DB, ADODB;
...
var
...
Conn:TADOConnection;
RecSet:TADOQuery;
n: integer;
...
begin
...
    Conn := TADOConnection.Create(Self);
    Conn.ConnectionString := 'Provider=WinCCOLEDBProvider.1;Catalog=CC_Arctest_13_06_21_13_41_36R;Data Source=SGES-SVA-TM1\WINCC'
    RecSet:=TADOQuery.Create(Self);
    RecSet.Connection := Conn;
    RecSet.SQL.Text := 'TAG:R,"ProcessValueArchive\AI1", "2013-7-2 00:00:00.000", "2013-7-3 23:59:59.000"';
    try
      Conn.Open;
      RecSet.Open;
      if not RecSet.IsEmpty then
        begin
          n := 1;
          ...
          while not RecSet.Eof do
            begin
              inc(n);
              // выводите результат куда Вам надо
              ... = RecSet.Fields[0].AsString;
              ...
              RecSet.Next;
            end;
        end;
    finally
      RecSet.Close;
      Conn.Close;
       FreeAndNil(RecSet);
       FreeAndNil(Conn);
    end;
astecenko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE vs Visual Basic 2010 ~Ё->77 Софт 5 01.08.2011 18:31
из Delphi в Visual Basic aiktz Помощь студентам 0 08.11.2010 15:11
Delphi и Visual Basic zlodei1988 Софт 1 04.05.2010 22:57
из Visual Basic в Delphi NeAlSe Помощь студентам 3 14.05.2008 16:25