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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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