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

Вниз

Знатокам FIBPlus 4.8: Что-то проиходит не так, после...   Найти похожие ветки 

 
VID   (2004-01-11 18:13) [0]

...неудачного коннекта к серверу.

А именно ситуация была такая: Дело было в сети на 50 машин. Комп с сервером был выключен. Включили все 50 машин, на них включили мою программу, которая при старте сразу же пытается коннектиться к серверу...

Procedure TDM.StartIBDBConnection;
begin
CanHandleDBErrors:=False;
try
IBDB.DatabaseName := ConnectSetsForm.HOST.Text+":"+ConnectSetsForm.DBPath.Text;
IBDB.UseLoginPrompt := False;
IBDB.ConnectParams.RoleName := "STUDENT";
IBDB.ConnectParams.UserName := ConnectSetsForm.Login.Text;
IBDB.ConnectParams.Password := ConnectSetsForm.Password.text;
IBDB.ConnectParams.CharSet := "WIN1251";
IBDB.SQLDialect := 3;
IBDB.Open;
except
CanHandleDBErrors:=True;
try Form1.SetConnectStat(ctBadSettings); except end;
end;
end;


Но так как сервер был выключен, то на экране появляется надпись "Проверьте настройки соединения..." - как результат работы Form1.SetConnectStat(ctBadSettings);

Включили сервер. И НЕ ПЕРЕЗАПУСКАЯ клиентов, снова попытались присоединиться к серверу, (ну там есть кнопка, типа "Повторить попытку соединения" - появляется при неудачном коннекте). Соединение состоялось. Вроде всё нормально.

Прога работает. Но через минут 10-15 НА ВСЕХ компах стал появляться глюк, а именно: не выполнялся UPDATE-запрос!
Т.е. для некоторых записей выполнялся, а для некоторых нет!

ЯВНЫХ ПРИЧИН, типа ограничений каких то в триггерах базы. или ещё чего то не было. Этот Update-запрос должен был выполняться! но он не выполнялся...


Function TDM.UpdateTestingCard:Boolean;
Var S:String;
Begin
Result := False;
IF not AdvancedTestingInfo.IsInfoActual then exit;
IF not CheckDBConnect(False) then exit;
try
S:="SELECT OUT_ISOK FROM STUDENT_UPDATETESTINGCARD ("+IntToStr(AdvancedTestingInfo.TestingCardID)+", "+IntToStr(AdvancedTestingInfo.Percents)+", "+FloatToStr(AdvancedTestingInfo.Mark)+", "+IntToStr(AdvancedTestingInfo.SecondsCount)+","+IntToStr(BoolToInt(AdvancedTestingInfo.DataRestored))+")";
With CreateQ(IBDB, S) do
try
Transaction := Transaction2;
ExecQuery;
Result := FieldByName["OUT_ISOK"].AsInteger = 1;
Transaction.Commit;
finally
Free;
end;
except end;
end;


...посмотрим на ХП STUDENT_UPDATETESTINGCARD...


CREATE PROCEDURE STUDENT_UPDATETESTINGCARD (
IN_ID INTEGER,
IN_PERCENTS INTEGER,
IN_MARK DOUBLE PRECISION,
IN_SECONDSCOUNT INTEGER,
IN_ISRESTORED INTEGER)
RETURNS (
OUT_ISOK INTEGER)
AS
DECLARE VARIABLE STATE INTEGER;
begin
OUT_ISOK = 0;
IF (:IN_ID is null) THEN exit;
SELECT "STATE"
FROM TESTINGCARD
WHERE "ID"=:IN_ID
INTO :STATE;

IF (:STATE not in (0,1)) then Exit;

UPDATE TESTINGCARD
SET "PERCENTS"=:IN_PERCENTS,
"MARK"=:IN_MARK,
"SECONDSCOUNT"=:IN_SECONDSCOUNT,
"ISRESTORED"=:IN_ISRESTORED
WHERE "ID"=:IN_ID;
OUT_ISOK = 1;
suspend;
END


Вот... так вот данный глюк совершенно не даёт о себе знать, если при старте клиента сервер был уже запущен, и коннект проиходит с первого раза без проблем.

Люди, что это за глюк ? Я не могу понять...


 
VID   (2004-01-13 01:39) [1]

Блин, ну всегда я умудряюсь здесь задать такой вопрос, на который как правило никто не знает ответа...


 
Vemer   (2004-01-13 02:21) [2]

Тупо но эффективно - вырубай прогу при неудачном коннекте.


 
Johnmen   (2004-01-13 09:23) [3]

>VID © (13.01.04 01:39)

Не совсем так... Просто всем влом читать твой код. И тем более в него вникать...:)
А если на пальцах, то такого не может быть.


 
VID   (2004-01-14 00:20) [4]

To Johnmen: но как то ведь это происходит


 
Sergey_Masloff   (2004-01-14 06:28) [5]

VID © (14.01.04 00:20) [4]
>To Johnmen: но как то ведь это происходит
чудес не бывает - это ошибки. И они не связаны (или связаны косвенно) с ситуацией которуюты описал.


 
VID   (2004-01-15 18:15) [6]

чёрт побери фигня же получается...
вечно какие то сранные проблемы появляются.



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

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

Наверх





Память: 0.46 MB
Время: 0.027 c
3-16098
Veetyok
2004-01-11 00:05
2004.02.06
SQL возможности


3-16184
Sam Stone
2004-01-13 17:46
2004.02.06
DBNavigator


1-16328
Крутыш
2004-01-24 23:13
2004.02.06
Послать сообщение mdichild-форме на восстановление.


7-16747
GleB
2003-11-22 01:23
2004.02.06
Реестр из-под DOS


14-16685
Blender
2004-01-17 13:15
2004.02.06
Internet Explorer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский