Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Верен ли такой подход? / 8 сообщений из 8, страница 1 из 1
01.02.2005, 16:21
    #32895103
верно?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Thisform.MyButton.click()
MyValue1 = Thisform.TextBox1.Value
MyValue2 = Thisform.TextBox2.Value
.......................................
cCommand = "INSERT INTO MyTable (MyField1, MyField2...) VALUES (MyValue1, MyValue2...)"
=MyStoredProcedure1(cCommand)

где хранимка

PROCEDURE MyStoredProcedure1
PARAMETERS cString
BEGIN TRANSACTION
&cString
ENDTRANSACTION

имеет ли право на жизнь такой позход модификации данных естественно таблица не одна а несколько...
...
Рейтинг: 0 / 0
01.02.2005, 17:25
    #32895338
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Изврат, по-моему.
Зачем делать вызов процедуры и макроподстановку, расходуя ресурсы, когда можно просто:
BEGIN TRANSACTION
INSERT INTO MyTable (MyField1, MyField2...) VALUES (MyValue1, MyValue2...)
END TRANSACTION
И еще, нужна ли тогда вообще транзакция?
...
Рейтинг: 0 / 0
01.02.2005, 17:31
    #32895360
верно?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
макроподстановка и правда не нужна.. извините... можно напрямую передавать пареметры...
транзакция же ИМХО нужна если обновление не в одной таблице а во многих....
...
Рейтинг: 0 / 0
01.02.2005, 17:34
    #32895371
верно?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
макроподстановкой точнее я хотел сделать универсальность.. то есть при этому будет одна хранимка на все вставки, а, если в команде дать вместо инсерта - апдейт, то будет вообще одна хранимка...
в случае непосредственного написания СКЛ кода в ХП процедур таких писать придется множество...
если я не прав - хотелось бы услышать мнения....
...
Рейтинг: 0 / 0
01.02.2005, 17:36
    #32895374
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Забыли про буферизацию... и про повторные попытки записать данные...
...
Рейтинг: 0 / 0
01.02.2005, 18:07
    #32895477
Верно?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Сергей - не забыл.. просто не упопянул...

PROCEDURE MyStoredProcedure1
PARAMETERS cString

=cursorsetprop('buffering', 5, 'MyTable')

BEGIN TRANSACTION
&cString

IF m.llSuccess = .T.
llSuccess = TableUpdate(.T.,m.llIsOtherWrite,'MyTable')
ENDIF
IF m.llSuccess = .F.
ROLLBACK
LOCAL laError(1)
=AERROR(laError)
....................................
ELSE
END TRANSACTION
ENDIF
**********************************
...
Рейтинг: 0 / 0
01.02.2005, 18:58
    #32895626
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Если версия 8 и выше, я бы еще применил излюбленное средство от "крутых программёров" - TRY CATCH... И возврат результа выполнения из ХП - хотя-бы успешно/не успешно с соответствующим анализом на клиенте...

Да и в конкретном примере - буферизацию лучше 3 - то есть для строки... И я бы все-таки пару раз бы попробовал выполнить операцию - вдруг запись будет заблокирована... Особенно когда много клиентов...
...
Рейтинг: 0 / 0
01.02.2005, 19:56
    #32895712
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верен ли такой подход?
Попытка написать универсальную процедуру, как правило, плохо кончаются. Такие процедуры начинают обрастать немеренным количеством условий и ограничений (ЕСЛИ...ТО...)

Кроме того, ты ведь будешь заниматься правкой непосредственно на форме. Какой смысл дублировать то, что FoxPro и сам прекрасно сделает? Я имею в виду модификацию в буфере таблицы. В методе Click() останется только сбросить буфер. Никаких "универсальных" процедур по модификации.

Возможно, имеет смысл сделать именно процедуру сброса буфера. Но не как ХП, а как метод некоего класса.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Верен ли такой подход? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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