Текущее время: Вс, авг 03 2025, 12:18

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Связь с БД через create object connection 'adodb.connection'.
СообщениеДобавлено: Чт, сен 20 2007, 12:38 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 28 2005, 06:24
Сообщения: 74
Добрый день.
Возникла такая задача, осуществляю соединение с БД SQL
data:
connection type ole2_object,
REC type ole2_object,
connectionstring type string.
data: query type string.

create object connection 'adodb.connection'.
connectionstring ='Provider=SQLOLEDB;Data Source=SQL2K;Trusted_Connection=Yes;Initial Catalog=BookKeeping'.

create object connection 'adodb.connection'.
IF NOT Sy-Subrc = 0.
EXIT.
ENDIF.
CREATE OBJECT REC 'ADODB.Recordset'.
IF NOT Sy-Subrc = 0.
EXIT.
ENDIF.
set property of connection 'ConnectionString' = ConnectionString.
** MDB Connection …
CALL METHOD OF connection 'Open'
EXPORTING #1 = ConnectionString.
query = 'select * from COD_Z'.

CALL METHOD OF REC 'Open'
EXPORTING
#1 = query
#2 = CONNECTION.

DO.
CALL METHOD OF REC 'Getstring' = query
EXPORTING #1 = 2
#2 = 1
#3 = '|'
#4 = '|'.

Вопрос : Как произвести запись уже обработанных даннх обратно в БД SQL


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 20 2007, 12:58 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
А абапе не делал, но смысл такой.

fakeValue = 5
set conn = CreateObject("ADODB.Connection")
conn.open "<conn string>"
sql = "INSERT someTable(IntColumn) values(" & fakeValue & ")"
set rs = conn.execute(sql)
response.write "New ID was " & rs(0)
rs.close:
set rs = nothing
conn.close:
set conn = nothing


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 21 2007, 06:41 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 28 2005, 06:24
Сообщения: 74
вопрос как это переложить на АВАР


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 21 2007, 07:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 02 2006, 14:22
Сообщения: 138
Откуда: г.Новомичуринск
Пол: Мужской
Code:
include ole2incl.
         name_bd(255)
        ,adoConnect       type ole2_object
        ,adoCommand    type ole2_object
        ,adoRS               type ole2_object
        ,adoField            type ole2_object
        ,result(600)
        ,initstr(400)
        ,field_name(255)
        ,eof(1)
        ,sql(600).
  create object adoconnect 'ADODB.Connection'.
  create object adors 'ADODB.RecordSet'.

  concatenate
  'Provider=SQLOLEDB.1;Persist Security Info=False;'
  'User ID=IntranetUser;Password=Intranet;'
  'Initial Catalog='
   name_BD Имя БД
  ';Data Source= Сдесь SQL Server HOST NAME;'
  into initstr.

  set property of adoconnect 'ConnectionString' = initstr.

  call method of adoconnect 'Open'.

  set property of adors 'CursorType' = 3.
  set property of adors 'LockType' = 1.
  set property of adors 'ActiveConnection' = adoconnect.

А потом всё просто в SQL кидаете запрос и
Code:
  call method of adors 'Open'
    exporting
      #1 = sql.
  get property of adors 'EOF' = eof.

Потом если это был SELECT то
Code:
  while eof = '0'.
           field_name = Имя поля.
           call method of adors 'fields' = adofield
              exporting
                 #1 = field_name.
           get property of adofield 'Value' = result.
           clear result.
           free adofield.
           call method of adors 'MoveNext'.
           get property of adors 'EOF' = eof.
  endwhile.
  free adoconnect.
  free adofield.
  free adors.

Но лучше если это SQL Server то пользоваться Native SQL т.е. exec SQL т.к. ADO работает довольно то медленно и если честно не проверял как она отрабатывает в фоне.

_________________
Не ломайте то что уже есть.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 21 2007, 14:02 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Кто-нибудь знает, это на сервере выполняется или клиенте? adodb с юниксового сервера можно использовать? Может быть медленно из-за того что делается через sapgui на клиенте.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 21 2007, 14:20 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
OLE2 совместимые приложения, в том числе и OLEDB, выполняются на Windows клиенте. OLEDB - это технология под Windows для доступа к базе данных, разработанная MicroSoft, как замена OBDC.

Для клиента под Unix, OleDB, скорей всего, не портирован.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB