Article View: pl.comp.lang.delphi.bazy-danych
Article #82697Re: FireDac, MSSQL na komputerze z XE6 nie rzuca wyjątkiem (3604): Duplicate key was ignored.
From: Jan Drawski
Date: Thu, 04 Aug 2016 00:26
Date: Thu, 04 Aug 2016 00:26
34 lines
2724 bytes
2724 bytes
> Przyczyna jest prosta; wstawisz wartość do pola, która już istnieje. > Na tym polu jest klucz (indeks) unikalny, który dopuszcza duplikaty (to > raczej mało sensowne ustawienie, ale może się przydać w specyficznych > przypadkach). > I wtedy będzie dokładnie tak jak opisujesz, poczytaj o opcji indeksu > IGNORE_DUP_KEY: > https://msdn.microsoft.com/en-us/library/ms186869.aspx To było zamierzone, nie ma potrzeby sprawdzania, czy już wcześniej zostało część danych przesłanych. Nie znalazłem w MSSQLu polecenia typu INSERT IGNORE, a ze sprawdzaniem każdego id czy istnieje nie chciało mi się bawić choć teraz zmieniłem podejście. >> Błąd wyskakuje na każdym komputerze jak korzystam np. z HeidiSQL. >> Błąd z FireDac: >> [FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver][SQL >> Server]Duplicate key was ignored. > Jak tak ustawiłeś bazę, to tak masz... Ta sama baza, ten sam komputer: - W HeidiSQL pojawia się okienko informujące o błędzie. - W programie napisanym w Delphi nie ma wyjątku. - W programie napisanym w Delphi (tym samym) są wyjątki przy innych błędach. Inny komputer, inna baza danych, ten sam program napisany w Delphi: jest ten wyjątek Poradziłem sobie obsługując id wyjątku, później w ogóle zmieniłem podejście. Nie wiem dlaczego program się tak zachowuje, oczekiwałbym, że albo zawsze będzie wyjątek albo nigdy a tu jest raz tak a raz inaczej. -- Pozdrawiam Jan Drawski
Technical Details
Message-ID:
<57a28bba$0$656$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!fu-berlin.de!peer03.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<57a0cbf2$0$15189$65785112@news.neostrada.pl> <57a24a25$0$12541$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!fu-berlin.de!peer03.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: FireDac, MSSQL na komputerze z XE6 nie rzuca wyjątkiem (3604): Duplicate key was ignored. Newsgroups: pl.comp.lang.delphi.bazy-danych References: <57a0cbf2$0$15189$65785112@news.neostrada.pl> <57a24a25$0$12541$65785112@news.neostrada.pl> From: Jan Drawski <dfghdfg@o2.pl> Date: Thu, 4 Aug 2016 02:26:35 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <57a24a25$0$12541$65785112@news.neostrada.pl> Lines: 39 Message-ID: <57a28bba$0$656$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: user-109-243-73-38.play-internet.pl X-Trace: 1470270394 unt-rea-b-01.news.neostrada.pl 656 109.243.73.38:60520 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 2500 X-Received-Body-CRC: 3389216961 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit