Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

MSSQL 7 i transacchiya   Найти похожие ветки 

 
Mamed   (2005-02-08 14:13) [0]

U menya na Win95 kompyuteri rabotaet MSSQL 7 Desktop Edition.
V Programme ya ispolzuyu ADO componenti.Kod priblizitelno takoy
var Q:TAdoQuery;
.......

With Q Do
Begin
 Connection.BeginTrans;
 Active:=false;
 SQL.Append("SELECT FIELD1 FROM TABLE1");
 Active:=True;
 Append;
 FieldByname("FIELD1").asstring:="FFF1";
 Post;
 Active:=false;
 SQL.Append("SELECT FIELD2 FROM TABLE2");
 Active:=True;
 Append;
 FieldByname("FIELD2").asstring:="FFF2";
 Post;
 Active:=false;
 SQL.Append("SELECT FIELD3 FROM TABLE3");
 Active:=True;
 Append;
 FieldByname("FIELD3").asstring:="FFF3";
 Post;
 Connection.Committrans;
End;
Posle Takogo koda Tolko poslednoe izmenenie iz trannsactiona vipolyaetsya ostalnie ostayetsya.Toje samoy Proga S MSSQL 2000 rabotaet normalno.


 
ЮЮ ©   (2005-02-09 05:39) [1]

SQL.Append("SELECT FIELD1 FROM TABLE1");
...
SQL.Append("SELECT FIELD3 FROM TABLE3");

посмотри на результирующий SQL.Text :)

а почему вместо этого изврата, не написать просто

Connection.BeginTrans;
try
 Q.SQL.Text := "INSERT INTO Table1(FIELD1) VALUES(:FIELD1)";
 Q.Parameters[0].Value := "FFF1";
 Q.ExecSQL;
 ...
 Q.SQL.Text := "INSERT INTO Table3(FIELD3) VALUES(:FIELD3)";
 Q.Parameters[0].Value := "FFF3";
 Q.ExecSQL;
 Connection.Committrans;
except
 Connection.RollbackTrans;
end;

end;


 
Nikolay M. ©   (2005-02-09 09:58) [2]


> ЮЮ ©   (09.02.05 05:39) [1]

Ой, не хорошо это - рулить транзакциями с клиента... Имхо.


 
ЮЮ ©   (2005-02-09 10:50) [3]

>Nikolay M. ©   (09.02.05 09:58) [2]

да что ты? :) без try ... except, безусловно, нехорошо.
Connection.XXXTrans, интересно, для чего в public вынесли?
И каким, есле не на клиенте, образом можно выполнить пакет для вставки/корректировки/удаления данных?


 
Nikolay M. ©   (2005-02-09 11:21) [4]


> ЮЮ ©   (09.02.05 10:50) [3]
> >Nikolay M. ©   (09.02.05 09:58) [2]
>
> да что ты? :) без try ... except, безусловно, нехорошо.

Я не что, я кто.
Да хоть и с трай-ексепт. Во-первых, с идеологической точки зрения, пусть за целостность данных отвечает сервер, а не клиент. А, во-вторых, что, если дисконнект с сервером или еще какие глюки сети?


> И каким, есле не на клиенте, образом можно выполнить пакет
> для вставки/корректировки/удаления данных?

Хранимые процедуры на то есть. В сочетании с (псевдо)временными таблицами или XML можно добиться желаемого.


 
ЮЮ ©   (2005-02-09 11:30) [5]

>В сочетании с (псевдо)временными таблицами

Тогда уж вы Вы :)
псевдовременная таблица - это случайно не на клиенте, которому, не дело, с идеологической точки зрения, заниматься данными - для этого сервер есть? И как её, интересно, передать в XP?


 
Nikolay M. ©   (2005-02-09 11:45) [6]


> Тогда уж вы Вы :)

Ничего, что я на Вы и по фамилии? :)


> псевдовременная таблица - это случайно не на клиенте

Нет. Имею ввиду, что временная таблица - это обычная # или ##, а псевдовременная - это обычная таблица, постоянно существующая на сервере, в которую клиенты пишут некоторые подготовительные данные + свой @@SPID для последующего выполнения ХП.


> И как её, интересно, передать в XP?

А в ХП можно передать, например, XML, если это требуется.


 
Mamed   (2005-02-09 14:03) [7]

Ispravil bag:sql7Sp4 zapustil na servere i vse rabotal tak kak nado)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
1-1109594673
hgd
2005-02-28 15:44
2005.03.13
Какая функция позволяет


1-1109416806
Kwt
2005-02-26 14:20
2005.03.13
Border Style


1-1109683663
emfw
2005-03-01 16:27
2005.03.13
Мноострочный список


1-1109269017
Gear
2005-02-24 21:16
2005.03.13
Приоритеты процессов


14-1108960327
begin...end
2005-02-21 07:32
2005.03.13
С Днём рождения! 21 февраля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский