Thread View: pl.comp.lang.delphi.bazy-danych
8 messages
8 total messages
Started by J-23
Sat, 13 Jan 2018 21:26
Zeos aktualizacja blob'a problem
Author: J-23
Date: Sat, 13 Jan 2018 21:26
Date: Sat, 13 Jan 2018 21:26
48 lines
1238 bytes
1238 bytes
Witam, Mam taki kod procedure TDBCard.SaveCard; var BlobStream: TBlobField; FS: TFileStream; begin try FS := TFileStream.Create(ExtractFilePath(Application.ExeName) +'StreamOut.xml', fmCreate); FXML.Position:=0; FS.CopyFrom(FXML, FXML.Size); finally FS.Free; end; with FZTable do begin Edit; BlobStream := FieldByName('CAR_CARD') as TBlobField; BlobStream.LoadFromStream(FXML); FieldByName('CAR_VERSION').AsInteger := 33; FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; Post; end; end; Z tym że ten kod poniżej jest tylko w formie znalezieniem problemu a chodzi o zapis xml do pola blob try FS := TFileStream.Create(ExtractFilePath(Application.ExeName) +'StreamOut.xml', fmCreate); FXML.Position:=0; FS.CopyFrom(FXML, FXML.Size); finally FS.Free; end; Tutaj robie zrzut xml do pliku bo myślałem że mam coś nie tak z przetwarzaniem xml zmieniam w nim jedna wartość jak wynika z pliku StreamOut wartość jest zmieniana za każdym razem i to jest jak najbardziej dzialanie ok Problem wydaje się wynikać że nie zawsze jest aktualizowanie pole blob, czy spotkał się ktoś z Was z tym problemem Pozdrawiam J-23
Re: Zeos aktualizacja blob'a problem
Author: zpksoft
Date: Sun, 14 Jan 2018 07:44
Date: Sun, 14 Jan 2018 07:44
57 lines
1568 bytes
1568 bytes
W dniu sobota, 13 stycznia 2018 21:26:11 UTC+1 użytkownik J-23 napisał: > Witam, > Mam taki kod > > procedure TDBCard.SaveCard; > var > BlobStream: TBlobField; > FS: TFileStream; > begin > try > FS := TFileStream.Create(ExtractFilePath(Application.ExeName) > +'StreamOut.xml', fmCreate); > FXML.Position:=0; > FS.CopyFrom(FXML, FXML.Size); > finally > FS.Free; > end; > > with FZTable do > begin > Edit; > BlobStream := FieldByName('CAR_CARD') as TBlobField; > BlobStream.LoadFromStream(FXML); > FieldByName('CAR_VERSION').AsInteger := 33; > FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; > Post; > end; > end; > > Z tym że ten kod poniżej jest tylko w formie znalezieniem problemu a > chodzi o zapis xml do pola blob > > try > FS := TFileStream.Create(ExtractFilePath(Application.ExeName) > +'StreamOut.xml', fmCreate); > FXML.Position:=0; > FS.CopyFrom(FXML, FXML.Size); > finally > FS.Free; > end; > Tutaj robie zrzut xml do pliku bo myślałem że mam coś nie tak z > przetwarzaniem xml zmieniam w nim jedna wartość jak wynika z pliku > StreamOut wartość jest zmieniana za każdym razem i to jest jak > najbardziej dzialanie ok > > Problem wydaje się wynikać że nie zawsze jest aktualizowanie pole blob, > czy spotkał się ktoś z Was z tym problemem > > Pozdrawiam > J-23 A jakiś commit po post?
Re: Zeos aktualizacja blob'a problem
Author: zpksoft
Date: Sun, 14 Jan 2018 08:27
Date: Sun, 14 Jan 2018 08:27
76 lines
2315 bytes
2315 bytes
W dniu niedziela, 14 stycznia 2018 17:07:18 UTC+1 użytkownik J-23 napisał: > W dniu 14.01.2018 o 16:44, zpksoft pisze: > > W dniu sobota, 13 stycznia 2018 21:26:11 UTC+1 użytkownik J-23 napisał: > >> Witam, > >> Mam taki kod > >> > >> procedure TDBCard.SaveCard; > >> var > >> BlobStream: TBlobField; > >> FS: TFileStream; > >> begin > >> try > >> FS := TFileStream.Create(ExtractFilePath(Application.ExeName) > >> +'StreamOut.xml', fmCreate); > >> FXML.Position:=0; > >> FS.CopyFrom(FXML, FXML.Size); > >> finally > >> FS.Free; > >> end; > >> > >> with FZTable do > >> begin > >> Edit; > >> BlobStream := FieldByName('CAR_CARD') as TBlobField; > >> BlobStream.LoadFromStream(FXML); > >> FieldByName('CAR_VERSION').AsInteger := 33; > >> FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; > >> Post; > >> end; > >> end; > >> > >> Z tym że ten kod poniżej jest tylko w formie znalezieniem problemu a > >> chodzi o zapis xml do pola blob > >> > >> try > >> FS := TFileStream.Create(ExtractFilePath(Application.ExeName) > >> +'StreamOut.xml', fmCreate); > >> FXML.Position:=0; > >> FS.CopyFrom(FXML, FXML.Size); > >> finally > >> FS.Free; > >> end; > >> Tutaj robie zrzut xml do pliku bo myślałem że mam coś nie tak z > >> przetwarzaniem xml zmieniam w nim jedna wartość jak wynika z pliku > >> StreamOut wartość jest zmieniana za każdym razem i to jest jak > >> najbardziej dzialanie ok > >> > >> Problem wydaje się wynikać że nie zawsze jest aktualizowanie pole blob, > >> czy spotkał się ktoś z Was z tym problemem > >> > >> Pozdrawiam > >> J-23 > > > > A jakiś commit po post? > > > > Tutaj mam autocommit to raz dwa np zmieniam wartości 'CAR_VERSION' i to > się zmienia a zawartość pola blob nie ulega zmianie > > Pozdrawiam > J-23 Z tego co widzę, to otwierasz strumień, ustawiasz go na 0 a następnie wrzucasz do pliku. Potem chcesz załadować go do bloba, ale licznik jest na końcu. Spróbuj przed ładowaniem do bloba zrobić jeszcze ras seek(0) Paweł
Re: Zeos aktualizacja blob'a problem
Author: zpksoft
Date: Sun, 14 Jan 2018 09:37
Date: Sun, 14 Jan 2018 09:37
10 lines
408 bytes
408 bytes
Ech, trochę namieszałem w tej odpowiedzi, sory, wieczorne piwko ;) Faktem jednak jest że: Po wykreowaniu strumienia niepotrzebnie ustawiasz mu licznik na 0. Po załadowaniu strumienia z pliku licznik jest ustawiony na jego końcu i tu właśnie po tej operacji brakuje position:=0 (lub seek(0); żeby można było z niego czytać Pozdrawiam Paweł
Re: Zeos aktualizacja blob'a problem
Author: zpksoft
Date: Sun, 14 Jan 2018 13:56
Date: Sun, 14 Jan 2018 13:56
63 lines
2038 bytes
2038 bytes
W dniu niedziela, 14 stycznia 2018 20:05:53 UTC+1 użytkownik J-23 napisał: > W dniu 14.01.2018 o 18:37, zpksoft pisze: > > Ech, trochę namieszałem w tej odpowiedzi, sory, wieczorne piwko ;) > > > > Faktem jednak jest że: > > Po wykreowaniu strumienia niepotrzebnie ustawiasz mu licznik na 0. > > Po załadowaniu strumienia z pliku licznik jest ustawiony na jego końcu i tu właśnie po tej operacji brakuje position:=0 (lub seek(0); żeby można było z niego czytać > > Masz na myśli taką zmianę prawda? > > with FZTable do > begin > Edit; > BlobStream := FieldByName('CAR_CARD') as TBlobField; > FXML.Position:=0; > BlobStream.LoadFromStream(FXML); > FieldByName('CAR_VERSION').AsInteger := 33; > FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; > Post; > end; > end; > > Lecz ona nie przynosi skutku. > > Zrobiłem jeszcze coś takiego > with FZTable do > begin > Edit; > BlobStream := FieldByName('CAR_CARD') as TBlobField; > FXML.Position:=0; > BlobStream.LoadFromStream(FXML); > BlobStream.SaveToFile(ExtractFilePath(Application.ExeName) > +'BlobOut.xml'); > FXML.Position:=0; > FieldByName('CAR_VERSION').AsInteger := 33; > FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; > Post; > end; > end; > > Gdzie w pliku BlobOut.xml jest to co chciałbym by było w Bazie i to > działa jak najbardziej prawidłowo. > > Jednak po wykonaniu post zawartość bloba się nie uaktualnia pozostałe > kolumny jak najbardziej > Ponadto dodam że chodzi o bazę MSSQL > > Pozdrawiam > J-23 Tak, to miałem na myśli. Ale widać że nie o to chodziło. Nie pracowałem na MSSQL. Z grupy wiem że Wloochacz pracuje na takich bazach, może odczyta ten wątek i coś Ci poradzi. Powodzenia Paweł
Re: Zeos aktualizacja blob'a problem
Author: J-23
Date: Sun, 14 Jan 2018 17:06
Date: Sun, 14 Jan 2018 17:06
59 lines
1695 bytes
1695 bytes
W dniu 14.01.2018 o 16:44, zpksoft pisze: > W dniu sobota, 13 stycznia 2018 21:26:11 UTC+1 użytkownik J-23 napisał: >> Witam, >> Mam taki kod >> >> procedure TDBCard.SaveCard; >> var >> BlobStream: TBlobField; >> FS: TFileStream; >> begin >> try >> FS := TFileStream.Create(ExtractFilePath(Application.ExeName) >> +'StreamOut.xml', fmCreate); >> FXML.Position:=0; >> FS.CopyFrom(FXML, FXML.Size); >> finally >> FS.Free; >> end; >> >> with FZTable do >> begin >> Edit; >> BlobStream := FieldByName('CAR_CARD') as TBlobField; >> BlobStream.LoadFromStream(FXML); >> FieldByName('CAR_VERSION').AsInteger := 33; >> FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; >> Post; >> end; >> end; >> >> Z tym że ten kod poniżej jest tylko w formie znalezieniem problemu a >> chodzi o zapis xml do pola blob >> >> try >> FS := TFileStream.Create(ExtractFilePath(Application.ExeName) >> +'StreamOut.xml', fmCreate); >> FXML.Position:=0; >> FS.CopyFrom(FXML, FXML.Size); >> finally >> FS.Free; >> end; >> Tutaj robie zrzut xml do pliku bo myślałem że mam coś nie tak z >> przetwarzaniem xml zmieniam w nim jedna wartość jak wynika z pliku >> StreamOut wartość jest zmieniana za każdym razem i to jest jak >> najbardziej dzialanie ok >> >> Problem wydaje się wynikać że nie zawsze jest aktualizowanie pole blob, >> czy spotkał się ktoś z Was z tym problemem >> >> Pozdrawiam >> J-23 > > A jakiś commit po post? > Tutaj mam autocommit to raz dwa np zmieniam wartości 'CAR_VERSION' i to się zmienia a zawartość pola blob nie ulega zmianie Pozdrawiam J-23
Re: Zeos aktualizacja blob'a problem
Author: J-23
Date: Sun, 14 Jan 2018 20:05
Date: Sun, 14 Jan 2018 20:05
47 lines
1439 bytes
1439 bytes
W dniu 14.01.2018 o 18:37, zpksoft pisze: > Ech, trochę namieszałem w tej odpowiedzi, sory, wieczorne piwko ;) > > Faktem jednak jest że: > Po wykreowaniu strumienia niepotrzebnie ustawiasz mu licznik na 0. > Po załadowaniu strumienia z pliku licznik jest ustawiony na jego końcu i tu właśnie po tej operacji brakuje position:=0 (lub seek(0); żeby można było z niego czytać Masz na myśli taką zmianę prawda? with FZTable do begin Edit; BlobStream := FieldByName('CAR_CARD') as TBlobField; FXML.Position:=0; BlobStream.LoadFromStream(FXML); FieldByName('CAR_VERSION').AsInteger := 33; FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; Post; end; end; Lecz ona nie przynosi skutku. Zrobiłem jeszcze coś takiego with FZTable do begin Edit; BlobStream := FieldByName('CAR_CARD') as TBlobField; FXML.Position:=0; BlobStream.LoadFromStream(FXML); BlobStream.SaveToFile(ExtractFilePath(Application.ExeName) +'BlobOut.xml'); FXML.Position:=0; FieldByName('CAR_VERSION').AsInteger := 33; FieldByName('CAR_MODIFICATIONDATE').AsDateTime := NOW; Post; end; end; Gdzie w pliku BlobOut.xml jest to co chciałbym by było w Bazie i to działa jak najbardziej prawidłowo. Jednak po wykonaniu post zawartość bloba się nie uaktualnia pozostałe kolumny jak najbardziej Ponadto dodam że chodzi o bazę MSSQL Pozdrawiam J-23
Re: Zeos aktualizacja blob'a problem
Author: immo
Date: Sun, 14 Jan 2018 23:03
Date: Sun, 14 Jan 2018 23:03
11 lines
369 bytes
369 bytes
W dniu niedziela, 14 stycznia 2018 22:56:58 UTC+1 użytkownik zpksoft napisał: > Nie pracowałem na MSSQL. > Z grupy wiem że Wloochacz pracuje na takich bazach, może odczyta ten wątek i coś Ci poradzi. MSSQL nie ma tutaj nic do rzeczy. Na FireDAC czy SDAC podobna konstrukcja działa bez problemu. pozdrawiam, Przemek O.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads