Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlExec / 6 сообщений из 6, страница 1 из 1
22.10.2003, 23:31
    #32302308
lesha_spb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
Есть
SQLExec(handle,"UPDATE ARHERG SET ENERGY =?energy WHERE ARHERG.M_GR =?m_gr")
Как узнать, как отработал update, нашел такие записи или нет, одним словом аналог _TALLY?
...
Рейтинг: 0 / 0
23.10.2003, 03:20
    #32302359
brahew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
Ну не _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
23.10.2003, 09:08
    #32302450
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
А сервер какой?
Для 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
23.10.2003, 18:20
    #32303579
lesha_spb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
2brahew: мне нужно посмотреть обновил ли что-нибудь update или нет, а sqlexec вернет 1 в любом случае успешного выполнения.
Во-вторых, в чем смысл, вкратце, "UPDATE ARHERG SET ENERGY ='"+energy+"' WHERE ARHERG.M_GR ="+alltr(str(m_gr)) ?
2NNN: обязательно попробую твои варианты, думаю должно получится.
...
Рейтинг: 0 / 0
24.10.2003, 03:21
    #32303784
brahew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
Извиняюсь, не понял. О том что обновил сервер или нет я узнаввать не привык. Что видимо не правильно, но это как спроектирована система, у меня при использовании моих классов, запись пока она у кого то на редактировании удалится не может, поэтому все обновится.
2 сервер не знает о переменных из фокса, поэтому надо ему передать эти параметры в хранимую процедуру или динамически сформировать insert/update/delete, на мой взгляд второй вариант медленней, но позволяет избавится от 3*(кол-во таблиц) процедур. а при правильных индексах, в скорости не отстает от хранимок и позволяет более гибко корректировать базу.
...
Рейтинг: 0 / 0
24.10.2003, 20:36
    #32304892
lesha_spb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlExec
Всем спасибо за ответы!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SqlExec / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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