Текущее время: Сб, июл 19 2025, 02:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 06 2007, 09:11 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Пономарев Артем написал:
Для начала на клиентской машине либо на сервере приложений должен быть установлен сооответсвующий драйвер.

Потом надо разобраться с корректным синтаксисом строки коннекта. Например для файрберда она выглядит так:
Code:
connectionstring ='DRIVER=Firebird/InterBase(r) driver;PWD=masterkey;UID=SYSDBA;DBNAME=удалённыйсервер/порт:load;'.

Причем важна правильность каждого символа :)

Ну а дальше все просто:

Code:
INCLUDE ole2incl.

DATA: connection type ole2_object,
           connectionstring(500).

...

CREATE OBJECT connection 'adodb.connection'.

IF sy-subrc NE 0.
  EXIT.
ENDIF.

SET PROPERTY OF connection 'ConnectionString' = connectionstring.

IF sy-subrc NE 0.
  EXIT.
ENDIF.

CALL METHOD OF connection 'Open'.

IF sy-subrc NE 0.
  EXIT.
ENDIF.

....



Драйвер установили, connectionstring написали, вроде как даже соединение открылось... А через как теперь данные взять оттуда?? Как к таблицам обратиться?? :oops: подскажите пожалуйста...


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
И тут наступает самое интересное. Нужно научиться работать с RecordSet.

http://www.microsoft.com/technet/prodte ... x?mfr=true


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Благодарю Вас!!! :roll:


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

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

Code:
*———————————————————————*
* Report Name : YGECICI
*———————————————————————*
* Author : Mehmet Avşar
* Location : @Altunizade - Uskudar / Istanbul
* Date / Time : 05 Jan 2007
* Subject : Upload Data From MS Accsess Into an Internal Table
*———————————————————————*
REPORT YGECICI MESSAGE-ID 00
No Standard Page Heading
Line-Size 200
Line-Count 65.

INCLUDE Ole2incl.

DATA: Con TYPE Ole2_Object,
Rec TYPE Ole2_Object.

DATA SQL(1023).

DATA: BEGIN OF SPL OCCURS 0,
VAL(1023),
END OF SPL.

DATA: BEGIN OF I1 OCCURS 0,
F1 TYPE I ,
F2(10),
F3(10),
END OF I1.

IF Con-Header IS INITIAL OR Con-Handle = -1.
CREATE OBJECT Con ‘ADODB.Connection’.
IF NOT Sy-Subrc = 0.
EXIT.
ENDIF.

CREATE OBJECT REC ‘ADODB.Recordset’.
IF NOT Sy-Subrc = 0.
EXIT.
ENDIF.

ENDIF.

* MDB Connetion Infomations ….
CONCATENATE ‘Provider=’ ”’Microsoft.Jet.OLEDB.4.0”’ ‘;’
INTO SQL.
CONCATENATE SQL ‘Password=’ ””” ‘;’
INTO SQL.
CONCATENATE SQL ‘User ID=’ ”’Admin”’ ‘;’
INTO SQL.
CONCATENATE SQL ‘Data Source=’ ”’C:\Mm.Mdb”’ ‘;’
INTO SQL.
CONCATENATE SQL ‘Mode=’ ”’Share Deny None”’
INTO SQL.

* MDB Connection …
CALL METHOD OF CON ‘Open’
EXPORTING #1 = SQL.
*

* Query (Insert) Statement …
SQL = ‘Insert Into [Test] Values(’.
CONCATENATE SQL ”’A”’ ‘,’ ”’1”’ ‘)’ INTO SQL.

* Query Run …
CALL METHOD OF REC ‘Open’
EXPORTING #1 = SQL
#2 = CON
#3 = ‘1′.

* Query (Select) Statement …
SQL = ‘Select * From[Test]’.

* Query Run …
CALL METHOD OF REC ‘Open’
EXPORTING #1 = SQL
#2 = CON
#3 = ‘1′.

* Selecting MDB Record Into SAP Internal Table …
DO.
CALL METHOD OF REC ‘Getstring’ = SQL
EXPORTING #1 = ‘2′ “Do Not Modify!
#2 = 1 “Do Not Modify!
#3 = ‘|’ “Do Not Modify!
#4 = ‘|’. “Do Not Modify!

IF Sy-SUBRC EQ 0.
REFRESH SPL. CLEAR SPL.
SPLIT SQL AT ‘|’ INTO TABLE SPL.
LOOP AT SPL.
CASE SY-TABIX.
WHEN 1.
I1-F1 = SPL-VAL.
When 2.
I1-F2 = SPL-VAL.
WHEN OTHERS.
I1-F3 = SPL-VAL.
ENDCASE.
ENDLOOP.
APPEND I1. CLEAR I1.
ELSE.
EXIT.
ENDIF.

ENDDO.

* Result Writing …
LOOP AT I1.
WRITE: AT /1(10) I1-F1,
AT (10) I1-F2, AT (20) I1-F3.
ENDLOOP.

* Connetion Close & Destroy
FREE OBJECT Con.
FREE OBJECT Rec.


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Спасибо!!!! :) Очень помогло...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 09:08 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Еще вопросик. пишу connectionstring = 'DSN=name'. работает... но берется DSN с моей локальной машины.. На сервере приложений SAP тоже стоит MYSQL драйвер тоже DSN создан. Нельзя ли сделать так чтобы SAP к нему обращался. Если да то подскажите как... :roll:

если без DSN:
Пробую прописать connectionstring так
connectionstring ='Driver=MySQL ODBC 3.51 Driver;Server=ServerName;User ID=user;Password=pas;Database=dName'.
в Delphi рабоает в SAP нет... В чем может быть проблема??

Спасибо за ранее! :)


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Нет, описанный вариант работы с базой идет именно через презентационный сервер (локальную машину). По RFC Вы управляете интерфейсом базы данных на локальной машине. Если Вы хотите использовать прямой коннект к базе с сервера приложений, используйте другой механизм.
Транзакция dbco.
Поиск по форуму по слову EXEC SQL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 10:01 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
То есть нужно будет каждому пользователю на локальной машине в таком случае создать DSN?? Админ будет не доволен :roll: Спасибо за помощь!!


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Вообще бы Вам надо с архитектурой приложения разобраться, зачем всем пользователям запускать ваше приложение. Я так понял, Вам нужен интерфейс для импорта данных из mysql в SAP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 10:18 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Вы правильно поняли. Всем не надо. Нужно двум. Только MySql база у нас любит прыгать с сервера на сервер :roll: . Поэтому Админ попросил сделать так чтоб при переездах базы не приходилось бы менять имена сервера в DSNах у пользователей... Хотя он может это сделать даже не вставая с собственного места :)


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Спростите вашего админа, он в курсе, что такое DNS? Если в курсе, пусть Вам "мозги не парит".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 10:40 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Благодарю Вас!!! Который раз меня выручили.. :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2

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


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

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


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

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