Import danych z TMemoryStream do tabeli postgreSQL

Odpowiedz Nowy wątek
2015-02-11 14:26
0

Witam,

Czy da się zaimportować dane bezpośrednio ze stream-a do tabeli (dodanie zbioru wierszy)? Z tego co widzę postgreeSQL 8.2 ma funkcje COPY do importu danych z pliku, czy da się jej użyć także dla memorystream-a? Używam BCB6.0 i ADO.
Jeśli ktoś ma jakiś przykład w Delphi/BCB będę wdzięczny.

Pozdrawiam

Pozostało 580 znaków

2015-02-11 14:50
0

a co to za dane? Jeśli chcesz je wsadzić do pola blob to tak


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2015-02-11 19:04
0

Nie, chodzi o zwykłe dane, zamiast robić pojedyncze inserty chce hurtem załadować dane. Widzę że muszę użyć COPY z STDIN ale jak załadować streama z ADO? Coś tak widzę że muszę zapisać jednak do pliku i zamiast STDIN podawać ścieżkę do pliku.

Pozostało 580 znaków

2015-02-11 20:13
0

dalej nie wiem co chcesz zrobić. Jeśli mówisz o pliku z ilomaś insertami, który możesz "zaciągnąć" do bazy to przecież są to ZWYKŁE INSERTY i wykonuje się je jak każde inne zapytanie.


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2015-02-12 00:13
0

Przykładowo mam plik z danymi np csv, mogę przeskanować plik i dla każdego wiersza robić inserta ale jest to nieefektywne i z tego co wyszukałem lepiej użyć funkcji COPY ze ścieżką do pliku i ładować całe dane hurtem (nie wykonując pojedynczych insertów).

Ładowanie z pliku przetestuje ale chciałem uniknąć zapisywania memorystreama do tymczasowego pliku i wczytywania z pliku jeśli się da załadować dane bezpośrednio ze streama.

PS:
http://www.postgresql.org/docs/8.2/static/sql-copy.html

Pozostało 580 znaków

2015-02-12 12:56
0

PS ładowanie z pliku działa ok tyle że memorystreama musiałem zapisać do tymczasowago pliku używając GetTempFileName i COPY podać ścieżkę do pliku.
Czy używając ADO da się jakoś załadować bezpośrednio streama? Z tego co widzę raczej nie ale może coś przeoczyłem.

Pozostało 580 znaków

2015-02-12 13:16
0

wątpię aby dało się przekierować stdin tak aby przez ado to przepchnąć. BTW wiesz, że plik musisz mieć na serwerze albo na udostępnionym zasobie bo musi on być dostępny z serwera a nie z aplikacji


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2015-02-12 13:37
0

Tak wiem, wymagana jest pełna ścieżka do pliku. Z tego co przeszukałem też wątpię żeby się dało przepchnąć przez ADO więc pozostaje plik i to działa dobrze (właśnie przetestowałem).
Dzięki za pomoc :)

Pozostało 580 znaków

2015-02-12 17:23
0

BTW czy MSSQL, Firebird albo SQLLite pozwalają załadować dane z pliku cvs? Mają odpowiednik funkcji COPY z PostgreSQL?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0