@ Pablo46: pitanje koje si postavio jako je dobro. Nema mnogo ljudi koji znaju kako se to radi, pa ako ti je vec uspelo, bilo bi lepo da nam opises kako si resio problem, mnogo ljudi ce biti zahvalno d anauci kako se to radi.
Uno slika u tabelu radi se uglavnom preko front enda (MS Access mi pada napamet, tamo je to veoma jednostavno), ali u MS SQL moze i T-SQL metodama. Ostali RDBMS (ORACLE, DB@, SYBASE etc.) imaju svoje metode. U MS SQL to moze ovako da se uradi:
Code:
-- Izvor: Knjiga "Inside MS SQL Server 2008: T-SQL Querying", Itzik Ben-Gan:
CREATE TABLE dbo.CustomerData
(
CustID int NOT NULL PRIMARY KEY
, txt_data varchar(max) NULL -- long text
, ntxt_data nvarchar(max) NULL -- long text with inetrnationa characters
, binary_data varbinary(max) NULL -- images and similar stuff
, xml_data XML NULL -- XML files
)
;
INSERT INTO dbo.CustomerData (CustID, xml_data)
VALUEs (101
, (
SELECT binary_data
FROM Openrowset(BULK 'c:\temp\binaryfile01.jpg', SINGLE_BLOB) AS F(binary_data)
)
)
;
UPDATE dbo.CustomerData
SET Binary_data = (
SELECT binary_data
FROM Openrowset(BULK 'c:\temp\binaryfile02.jpg', SINGLE_BLOB) AS F(binary_data)
)
, txt_data = (
SELECT txt_data
FROM Openrowset(BULK 'c:\temp\textfile.txt', SINGLE_CLOB) AS F(txt_data)
)
, ntxt_data = (
SELECT ntxt_data
FROM Openrowset(BULK 'c:\temp\unicodefile.txt', SINGLE_NCLOB) AS F(ntxt_data)
)
, xml_data = (
SELECT xmlt_data
FROM Openrowset(BULK 'c:\temp\xmlfile.xml', SINGLE_CLOB) AS F(xml_data)
)
WHERE CustID = 101
;
Sto se tice rasprave da li sliek idu ili ne idu u bazu, ostavimo to proizvodjacima softvera da rese kako najbolje znaju. Relaciona teorija definitivno ne zabranjuje kompleksne atribute. Sta je prakticno i izvodivo u datom trenutku, to zavisi od raspolozivosti potrebnih alata u RDBMS i front end aplikaciji koju koristite.