powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перенос foxpro на клиент сервер.
11 сообщений из 11, страница 1 из 1
перенос foxpro на клиент сервер.
    #38273858
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый форумчане есть приложение,которое использует субд FoxPro. Средствами FoxPro я перенёс таблицы на SQL SERVER 2008

Вот так я подключаюсь к серверу -
gn_hndl= SQLSTRINGCONNECT("Driver={SQL Server};Server=(local);Database=MZA;Uid=BraveHeart;Pwd=123;")
IF gn_hndl>0
MESSAGEBOX("Соединение установлено")
ENDIF

Остальной код работы писал не я, сейчас пытаюсь перенести системы на sql server.
Вопрос как вот эти строки переписать в использование к sql server?Я так понимаю раз таблицы лежат уже на sql server то ключевое слово use использовать нельзя?

SELECT * FROM terminal WHERE terminal.tecn_nom == m.term_numb INTO CURSOR regterm
USE IN terminal
IF _tally = 1
user_idt = regterm.idt
ENDIF
USE IN regterm
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273867
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, но появился ещё один вопрос.
Использую функцию SQLEXEC()
Пишу так: SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.kassir where MZA.dbo.kassir==m.user_idk")
Как я понимаю результат данного запроса на сервер будет храниться в SQLRESULT, но когда ты переменной присваиваешь, например,
ido= SQLRESULT.ido
foxpro ругается и пишет,что не может найти SQLRESULT, помогите что делать?
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273910
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BraveHeart,

задайте явно имя курсора - раз.
проверьте значение, возвращаемое функцией склэкзек - два.
если оно меньше нуля, то смотрите ошибку с помощью аеррор() - три.
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273914
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ,буду раз разбираться.
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273916
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BraveHeartПишу так: SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.kassir where MZA.dbo.kassir==m.user_idk")
Как я понимаю результат данного запроса на сервер будет храниться в SQLRESULT
третий параметр SQLEXEC имя курсора куда вернуть результат запроса.
BraveHeartно когда ты переменной присваиваешь, например,
ido= SQLRESULT.ido
foxpro ругается и пишет,что не может найти SQLRESULT, помогите что делать?
Что делать? Ошибки обрабатывать. Смотри что вернул SQLEXEC() и AERROR() для уточнения.

В твоем случае MS SQL понятия не имеет что такое == и m.user_idk

PS Не стоит переводить в лоб (т.е. тупо заменой синтаксиса) файл-сервер в клиент-сервер. Идеология работы разная. Получишь тормозную прогу, в лучшем случае.
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273929
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы,сейчас обработав ошибки получил код 1526, получается что-то с соединением?
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273938
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так ещё понимаю,то sql server не может разобрать запрос на сравнение для примера вот такой:
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom == m.term_numb")
Подскажите, какие есть способы сделать аналогию этого запроса,спасибо.
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273946
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BraveHeartСпасибо за ответы,сейчас обработав ошибки получил код 1526, получается что-то с соединением?Нет, не получается. Это говорит об ошибке на сервере. Как уже было указано, использовать Aerror() для получения текста серверных ошибок.
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273947
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BraveHeartЯ так ещё понимаю,то sql server не может разобрать запрос на сравнение для примера вот такой:
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom == m.term_numb")
Подскажите, какие есть способы сделать аналогию этого запроса,спасибо.
Сообщение об ошибке читай:
Код: sql
1.
2.
3.
4.
5.
6.
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom == m.term_numb")
if cmd < 0
	Local laError(1)
	=aerror(laError)
	MessageBox(laError[2],0,"Ошибка")
endif


я уже писал:
MSSQL не имеет понятия об операции ==
там просто =
и переменная m.term_numb это внутрифоксовая переменная. ее надо по значению передавать.
как-то так
Код: sql
1.
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom = '" + m.term_numb + "'")
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273948
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BraveHeartЯ так ещё понимаю,то sql server не может разобрать запрос на сравнение для примера вот такой:
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom == m.term_numb")Таки может, надо только правильно все делать.Подскажите, какие есть способы сделать аналогию этого запроса,спасибо.
Код: sql
1.
cmd =SQLEXEC(gn_hndl,"SELECT * FROM MZA.dbo.terminal WHERE MZA.dbo.terminal.tecn_nom = ?m.term_numb")
...
Рейтинг: 0 / 0
перенос foxpro на клиент сервер.
    #38273954
BraveHeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят всем спасибо,за такую быструю и своевременную помощь.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перенос foxpro на клиент сервер.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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