Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаленные данные / 20 сообщений из 20, страница 1 из 1
16.08.2004, 10:36
    #32650386
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Привет всем! Я пока новичек. Вопросы могут быть глупые. Нужен совет
Есть удаленный сервер. База - DB2.
Хочу приконнектится, получить данные на экран, удалить, добавить и т.д.
Все в рамках одной транзакции. Хочу много еще другого.
Вопрос в том, по какой технологии лучше сделать?
Через SQL Pass Through или что-то другое.
Пробовала разные технологии - коряво получается.
Не знаю на чем остановится и что развивать дальше.
Попутно. На Delhpi работала по технологии модальных форм.
Кк в Лисе удобней работать?
...
Рейтинг: 0 / 0
16.08.2004, 10:56
    #32650441
Соня_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Можешь для начала посмотреть работу с удаленными данными с помощью сквозных запросов ( SQL Pass Through ), мне кажется, это проще для начала.
А насчет того, по какой технологии лучше делать... Все варианты хороши.
Сквозные запросы хороши тем, что все хорошо просматривается (для каждого действия - своя команда).
Есть еще удаленные представления (RemoteView) - в них все напрямую практически работает - изменяешь данные в настроенном RemoteView, и они меняются на сервере. Впрочем, все там тоже настраивается.
Так что начинай разбираться с этим, потом сама поймешь что лучше.
...
Рейтинг: 0 / 0
16.08.2004, 11:11
    #32650469
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Копнула и то, и то
Пока трудно два колупать.
Что практичнее - не понятно.
...
Рейтинг: 0 / 0
16.08.2004, 11:28
    #32650517
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Khor-OlgaПривет всем! Я пока новичек. Вопросы могут быть глупые. Нужен совет
Есть удаленный сервер. База - DB2.
Хочу приконнектится, получить данные на экран, удалить, добавить и т.д.
Все в рамках одной транзакции. Хочу много еще другого.
Вопрос в том, по какой технологии лучше сделать?
Через SQL Pass Through или что-то другое.
Пробовала разные технологии - коряво получается.
Не знаю на чем остановится и что развивать дальше.
Что практичнее зависит от конкретной постановки задачи.

Remote View - проще (меньше кодить), но SQL Pass Through - универсальнее.
Я бы посоветовал пока остановиться на Remote View (и Cursor Adapter, если у Вас VFP8). Переключиться на SQL Pass Through если возникнет необходимость будет не проблема.

Khor-OlgaПопутно. На Delhpi работала по технологии модальных форм.
Кк в Лисе удобней работать?

Работайте в основном окне FoxPro (_SCREEN). В принципе, можно как в Delphi через формы As Top-Level, но программно это несколько сложнее и я не вижу особой необходимости.

Да, надеюсь, знаете про команду READ EVENTS. Новички обычно про нее вспоминают, только когда EXE мелькает на экране и тут же закрывается.
...
Рейтинг: 0 / 0
16.08.2004, 11:48
    #32650564
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
ВлидимирМ

Спасибо за советы. На READ EVENTS уже зависала.

На Remote что-то не получилось правильно создать соединение.
На разных формах не видела View. И хотелось чтобы запрос на Connect
был адаптирован на русском и при не правильном пароле не коннектиться.
Что-то не пошло, опыта маловато .Но с Гридом было проще
На SQL Pass Through коннект - все Ok, но много ручками прописывать приходится.
Попутно вопрос. В Init формы проверяютя какие-то условия.
При определенных вариантах хотелост дальше на Fctivate не идти.
Но Destroy, Deactivate, QueryUnL не срабатывают. Проваливаюсь на Activate
Какие-то свойства формы надо прописывать еще?
...
Рейтинг: 0 / 0
16.08.2004, 12:17
    #32650650
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Если в методе Init или Load-формы дать команду

RETURN .F.

То загрузка формы будет прервана и форма так и не загрузится.

Если не ошибаюсь, то окно запроса на Connect берется из Run-Time библиотеки. И если библиотека руссифицирована, то и окно запроса будет по русски.

Впрочем, не особо сложно нарисовать такую форомочку самостоятельно.

Лично я делал формочку только для ввода логина и пароля, а все остальное прописывал в настроечных файлах программы. Я как-то не думаю, что пользователи будут менять имя сервера или имя базы данных. Т.е. такое возможно, но скорее со стороны админа. Значит пользователю это не нужно ни с какого бока.

Ну, и сделал подавление выдачи этой формочки. Т.е. если соединение не прошло, просто пишу свое сообщение. Поищи здесь на форуме по слову "SQLStringConnect" как это сделать.
...
Рейтинг: 0 / 0
16.08.2004, 12:48
    #32650732
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
ВладимирМ
За return спасибо
Вместо SqlStringConnect я пользовалась SQLConnect
Думаю , что это почти одно и то же. Или я ошибаюсь?
Формочку с логином и Passw - делала. Все Ok - для SQL PassThrough.

Хотелось бы с Remote разобраться. Что-то не получ.
Или не так создала ODBC - драйвер, или в голове все перемешалось.
По книгам делаю - не то. Уточняю, что DB2. Может в этом проблема?
...
Рейтинг: 0 / 0
16.08.2004, 13:02
    #32650773
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Значит так.

Чтобы создать Remote View необходимо предварительно создать в базе данных еще один объект. Этот объект называется Connection.

В объекте Connection и происходит настройка соединения с сервером. Причем до версии VFP6 включительно указать конкретный Connection для Remote View динамически (т.е. в программе) было большой проблемой. Remote View жестко связывалось с конкретным объектом Connection (это одна из причин отказа от Remote View)

В объекте Connection прописывается способ соединения с сервером. Возможны 2 принципиальных варианта (переключатель Specify Data Source):

1) Через предварительно созданный DSN - аналог SQLConnect()
2) Явно прописать все нужные реквизиты игнорируя DSN - аналог SQLStringConnect()

Сделай поиск по форуму по слову "SQLStringConnection" и поймешь, что там надо прописывать.

Какой именно сервер используется - не принципиально. Логика работы со всеми серверами одинаковая.

После создания объекта Connection создаешь Remote View и явно прописываешь какой объект Connection будет использоваться для подключения к серверу.
...
Рейтинг: 0 / 0
16.08.2004, 13:17
    #32650806
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Чтобы добраться до Connect надо создать новую DataBase, наверное?
...
Рейтинг: 0 / 0
16.08.2004, 13:21
    #32650817
Khor-olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Продолжение

У меня в проекте еще нет DataBase. Поэтому к Connect и Remote только через нее можно добраться. И тут проблема. Плаваю еще
...
Рейтинг: 0 / 0
16.08.2004, 13:39
    #32650872
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Пока не отвечайте
Пробую сама
Что-то получ
спасибо за ответы
...
Рейтинг: 0 / 0
16.08.2004, 16:46
    #32651399
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
ВладмирМ

Воспользовалась вашим советом. Поискала по ключевым словам.
Если честно, не все понятно. Очевидно работа в Delphi через BDE и
компоненты прямого доступа накладывает пока огранечение на мое понимание.
Я понимаю так: загрузил приложение -> ввел 1 раз пароль -> приконнект->
и дальше на любой форме видишь любой View.
Но похоже у меня не видит. Ошибка типа : ошибка при загрузке файла ....
...
Рейтинг: 0 / 0
16.08.2004, 17:10
    #32651467
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Да нет, логика та же самая. Пойдем с самого начала.

Прежде всего, необходимо организовать место, где будут храниться все создаваемые объекты. Это место называется "Конейнер базы данных" (файл DBC, DCX, DCT). В принципе, можно и без него, но это потребует написание кучи кода.

Для установки соединения с сервером необходимо создать специальный объект в этом контейнере, который называется Connection. Для простоты используй соединение по DSN, как ты это делела в SQLConnection(). Т.е. надо задать 3 параметра: имя DSN, имя пользователя и пароль.

Теперь в любой момент, когда потребуется установить связь будет использован этот объект Connection с заданными реквизитами.

Далее создаешь объект Remote View. На самом перевом шаге тебе будет предложено указать объект Connection из контейнера базы данных или создать новый объект Connection на основе существующих DSN.

После создания Remote View просто включаешь его в DataEnvironment твоей формы и запускаешь ее на выполнение.

Это общая схема. Чтобы уточнить в чем там у тебя ошибка надо знать точное сообщение об ошибке.
...
Рейтинг: 0 / 0
16.08.2004, 17:28
    #32651517
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
ВладимирМ

Спасибо, что уделяете столько внимания.
Делала то же, что вы написали.

Итак
1. Создан ODBC
2. В проекте создана на закл. Data -> Databases -> data1
3. В data1 созданан Connections , Remote View(View1)
4. В Data Enver формы добавила View1
5. Делаю Requery

И ошибка. Что доступ к Data1 запрещен. Но при загрузке я приконнектилась
Значит, видеть должна все. Или все-таки надо делать что-то типа
Open database data1.dbf chared ...?
...
Рейтинг: 0 / 0
16.08.2004, 17:30
    #32651521
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Дайте в командом окне такую команду:

USE View1
BROWSE

Что получилось?

PS: Команда Requery() используется для обновления информации во View ранее открытом по команде USE.
...
Рейтинг: 0 / 0
16.08.2004, 17:40
    #32651545
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
В среде разработки все работает
А в скомпилир. ЕХЕ - нет.

Может
...
Рейтинг: 0 / 0
16.08.2004, 17:50
    #32651579
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Напишите:

1. OPEN DATABASE <путь_к_файлу_базы_данных> SHARED
(можно для верности второй командой SET DATABASE TO <имя_базы данных>)
2. USE <представление>
...
Рейтинг: 0 / 0
16.08.2004, 17:54
    #32651588
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Получается двойное действие:
SqlConnect и Open DataBase?
так и надо?
Я так делала, но подумала, что это не правильно.
Все-таки так?
...
Рейтинг: 0 / 0
16.08.2004, 18:00
    #32651602
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
OPEN DATABASE - это открытие базы данных VFP
Connection - это коннект к удаленному источнику

Короче. Сначала надо открыть БД фокса, иначе он не поймет, что нужно открыть представление, представление на диске не валяется, а записано в контейнере базы данных VFP. Потом при открытии удаленного представления фокс сам сделает запрос к удаленному источнику и заполнит представление данными.
...
Рейтинг: 0 / 0
16.08.2004, 18:06
    #32651620
Khor-Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленные данные
Спасибо всем за обсуждение и советы.
Надеюсь и в дальнейшем на такое же сотрудничество.
СПАСИБО
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаленные данные / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]