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

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


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

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


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

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