Форум: "Базы";
Текущий архив: 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.038 c