Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
Помогите!
Есть данные на SQL SERVER
Строка соединения:
gnConnHandle = SQLSTRINGCONNECT("Driver={SQL Server}; Server=server04; Database=temp")
затем запрос с SQL SERVER:
sqlresult=sqlexec(gnConnHandle,'select * from table1', 'tmp_cur')
получаю данные в курсор - всё нормально!
После изменений данных в курсоре, полученных с сервера, нужно их обновить на сервере, т.е. сопоставить данные в курсоре и на сервере и обновить на сервере, согласно курсора

Как это сделать? Только прошу не издеваться, а помочь!
Заранее благодарен!
4 сен 06, 16:49    [3090729]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Можешь сканировать курсор на предмет изменений и посылать SQLEXEC(gnConnHandle,"update TableName set ... where ..."). :)
А лучше создай удаленное представление выставь правила обновления данных и TABLEUPDATE() тебе всё обновит.
4 сен 06, 16:53    [3090750]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
AleksMed
Можешь сканировать курсор на предмет изменений и посылать SQLEXEC(gnConnHandle,"update TableName set ... where ..."). :)


А можно через Update сразу указать, что нужно обновлять все изменённые поля из курсора в таблице на сервере?
4 сен 06, 17:17    [3090920]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Refox
AleksMed
Можешь сканировать курсор на предмет изменений и посылать SQLEXEC(gnConnHandle,"update TableName set ... where ..."). :)


А можно через Update сразу указать, что нужно обновлять все изменённые поля из курсора в таблице на сервере?

Думаю, что нет.
Всё же посмотри в сторону Remote View. На простеньком примере (с одной табличкой) ты поймешь как всё это дело строиться.
4 сен 06, 17:22    [3090964]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
AleksMed
Всё же посмотри в сторону Remote View. На простеньком примере (с одной табличкой) ты поймешь как всё это дело строиться.


А маленький примерчик можно, как на основе строки соединения
SQLSTRINGCONNECT("Driver={SQL Server}; Server=server04; Database='TEMP')
создать удалённое представление с таблицей table1
4 сен 06, 17:27    [3090993]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Версия VFP ?
4 сен 06, 17:39    [3091054]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
-=AlexiS=-
Версия VFP ?

9.0 SP 1
4 сен 06, 17:40    [3091062]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Курсорадаптер - самый простой вариант.
1. В DE формы - правый клик Add CursorAdapter
2. На полученном СА правый клик - Builder
3. Вкладка 1 - Data Source Type - ODBC
Use ConectionString - твоя строка
4. Вкладка 2- строим нужный селект
5. Вкладка 3 - настраиваем что и как обновлять.

В результате имеем курсор с которым работаем как с обычной фоксовой таблицей с буферизацией 3 или 5 . Обновление происходит по tableupdate()
4 сен 06, 17:45    [3091097]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Более подробно про CA
тынц
4 сен 06, 17:46    [3091108]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
-=AlexiS=-
Курсорадаптер - самый простой вариант.
1. В DE формы - правый клик Add CursorAdapter
2. На полученном СА правый клик - Builder
3. Вкладка 1 - Data Source Type - ODBC
Use ConectionString - твоя строка
4. Вкладка 2- строим нужный селект
5. Вкладка 3 - настраиваем что и как обновлять.

В результате имеем курсор с которым работаем как с обычной фоксовой таблицей с буферизацией 3 или 5 . Обновление происходит по tableupdate()

А если не используется форма?
4 сен 06, 17:47    [3091114]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Refox
А если не используется форма?

СА можно создать и вручную
по указанной мной сцылке все подробно расписано , причем что радует на русском языке.

Можно также создать удаленное представление - механизм весьма похож на создание СА .
Или ручками с помощью cursorsetproperty прописать значения для обновляемых и ключевых полей у курсора , полученного sqlexec.

Но СА гораздо удобнее :-).
4 сен 06, 17:53    [3091160]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Refox
Member

Откуда: Житомир
Сообщений: 44
-=AlexiS=-
Refox
А если не используется форма?

СА можно создать и вручную
по указанной мной сцылке все подробно расписано , причем что радует на русском языке.

Можно также создать удаленное представление - механизм весьма похож на создание СА .
Или ручками с помощью cursorsetproperty прописать значения для обновляемых и ключевых полей у курсора , полученного sqlexec.

Но СА гораздо удобнее :-).


Огромное спасибо!
4 сен 06, 18:03    [3091209]     Ответить | Цитировать Сообщить модератору
 Re: Обновить данные на SQL SERVER  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3334
Уже было Смотри здесь, даже с кодом
5 сен 06, 08:23    [3092459]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить