powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlExec
6 сообщений из 6, страница 1 из 1
SqlExec
    #32302308
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть
SQLExec(handle,"UPDATE ARHERG SET ENERGY =?energy WHERE ARHERG.M_GR =?m_gr")
Как узнать, как отработал update, нашел такие записи или нет, одним словом аналог _TALLY?
...
Рейтинг: 0 / 0
SqlExec
    #32302359
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не _tally допустим, а m.per1=sqlexec(handle,"UPDATE ARHERG SET ENERGY =?energy WHERE ARHERG.M_GR =?m_gr")
Код: plaintext
1.
2.
if m.per1< 0  then
=messagebox('Обновление не прошло', 48 ,'Предупрждение')
endif

и видимо
Код: plaintext
 "UPDATE ARHERG SET ENERGY =?energy WHERE ARHERG.M_GR =?m_gr" 

должен быть в виде
Код: plaintext
 "UPDATE ARHERG SET ENERGY ='"+energy+"' WHERE ARHERG.M_GR =" +alltr(str(m_gr)) 

а еще можно написать процедуру, которая все insert, update, delete будет формировать на лету, и вообще никаких проблем
...
Рейтинг: 0 / 0
SqlExec
    #32302450
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сервер какой?
Для mssql принципе достаточно
Код: plaintext
SQLExec(handle, "SELECT @@ROWCOUNT" ) 

Но я бы сделал через ХП:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROCEDURE test 
@energy varchar( 20 ),  -- необходимый тип
 
@m_gr varchar( 20 ), 
@rows int output
AS
UPDATE ARHERG SET ENERGY =@energy WHERE ARHERG.M_GR =@m_gr
SET @rows=@@ROWCOUNT

Код: plaintext
1.
2.
3.
4.
5.
nCount= 0 
if SQLExec(handle, "EXEC test ?energy, ?m_gr, ?@nCount" )< 0 
    =MessageBox('Обновлено записей: '+ltrim(str(nCount)))
else
    =MessageBox('Ошибка при обновлении')
endif
...
Рейтинг: 0 / 0
SqlExec
    #32303579
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2brahew: мне нужно посмотреть обновил ли что-нибудь update или нет, а sqlexec вернет 1 в любом случае успешного выполнения.
Во-вторых, в чем смысл, вкратце, "UPDATE ARHERG SET ENERGY ='"+energy+"' WHERE ARHERG.M_GR ="+alltr(str(m_gr)) ?
2NNN: обязательно попробую твои варианты, думаю должно получится.
...
Рейтинг: 0 / 0
SqlExec
    #32303784
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, не понял. О том что обновил сервер или нет я узнаввать не привык. Что видимо не правильно, но это как спроектирована система, у меня при использовании моих классов, запись пока она у кого то на редактировании удалится не может, поэтому все обновится.
2 сервер не знает о переменных из фокса, поэтому надо ему передать эти параметры в хранимую процедуру или динамически сформировать insert/update/delete, на мой взгляд второй вариант медленней, но позволяет избавится от 3*(кол-во таблиц) процедур. а при правильных индексах, в скорости не отстает от хранимок и позволяет более гибко корректировать базу.
...
Рейтинг: 0 / 0
SqlExec
    #32304892
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlExec
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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