Plik w tabeli MSSQL
Replay - 07-01-2006 19:04
Plik w tabeli MSSQL
Witam!
Mam takie pytanko:
jest sobie jakis plik na dysku C: (np: c:\info.dat) i chcialbym ten plik wstawic do tabeli w ms sql 2000. Jaki typ musze zdefionowac i jak moge ten plik 'wlozyc' do tabeli?
Replay.
Robert Winkler - 07-01-2006 19:04
> jest sobie jakis plik na dysku C: (np: c:\info.dat) i chcialbym ten plik > wstawic do tabeli w ms sql 2000. > Jaki typ musze zdefionowac i jak moge ten plik 'wlozyc' do tabeli?
BINARY/VARBINARY jeśli plik jest mniejszy niż 8 kB IMAGE dla plików do 4 GB
Wstawianie do bazy, tu SQL nie ofeuje żadnej pomocy musisz napisać program który ci to zrobi. W zależności od języka programowania i zastosowanego interfejsu proces wstawiania pliku do bazu może wyglądać inaczej.
W przypadku jezyków rodziny Visual Basic (VB5, VB6, VBScript, VBA) oraz zastosowania interfejsu ADO kod mógłby wyglądać mniej więcej tak:
Dim con As ADODB.Connection Set con = New ADODB.Connection con.Open ConnectionString
Dim strQuery As String strQuery = "SELECT PLIK FROM TABELA WHERE ID = " & Id
Dim fileStream As ADODB.Stream Set fileStream = New ADODB.Stream fileStream.Type = adTypeBinary ' adTypeBinary = 1 fileStream.LoadFromFile "c:\info.dat"
Dim byteTable() As Byte byteTable = fileStream.Read
Dim rsTabela As ADODB.Recordset Set rsTabela = New ADODB.Recordset rsTabela.Open strQuery, con
rsTabela!Plik = byteTable
rsTabela.Update
rsTabela.Close con.Close
Kod ten jest prawidłowy dla niewielkich plików (mniejszych niż dostępna pamięć operacyjna) dla większych plików należy zmienić odczyt pliku tak by odbywał sie on partiami, na przykład po 4096 bajtów i dopisywać pobierane dane za pomocą: rsTabela("PLIK").AppendChunk byteTable
-- ____________ Robert Winkler
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
MSSQL Express czy Oracle Express
MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?=
[MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?=
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|