Exportați un registru de lucru Excel într-un câmp bază de date BLOB și înapoi
Bine ai venit!
Confruntat cu o anumită problemă atunci când lucrează cu Excel. Există un câmp BLOB în baza de date. Este necesar să salvați lista acolo în formatul EXCEL și apoi, dacă este necesar, să o afișați înapoi.
Nu-mi dau seama de această acțiune. Ajută cine știe cum este posibil să pună în aplicare (de preferință cu un exemplu).
Mulțumită în avans!
Nu schimbă cursul, nimic nu se schimbă deloc, aveți nevoie de DBMS
Există un DBMS, trebuie să știu cum să încărcați în mod special fișierul excel în el și descărcați-l în Excel.
În general, nu este vizibil.
Probabil că nu înțeleg nimic.
Dacă întrebarea nu este corect solicitată, atunci explicați-o, până acum mi-a amintit de comunicare ca într-un anecdot despre dispozitive.
Nu trebuie să aducem o anecdotă despre dispozitive, noi o știm, o știți, dar se comportă ca într-un anecdot.
Anatoli Podgorețski mulțumește pentru răspunsurile exhaustive
În Akces există trei câmpuri de tipul "BLOB"
# xA0; binar
# xA0; imagine
# xA0; text
Puteți folosi primul și al doilea, depinde de mai multe motive. Dacă doriți să lucrați ca obiect OLE, atunci al doilea. Dacă este cazul unui set de octeți, atunci primul.
Ei bine, în general, nu-mi pasă de DBMS-urile specifice. Pentru a face acest lucru, există o mulțime de informații exhaustive.
Întrebarea este ca în câmpul blob al setului de date puneți tabelul Excel și descărcați-l apoi înapoi pentru a excela.
Dacă specificați și mai mult, apoi în câmpul Câmpuri [n] din paleta de instrumente TADOTable din paleta de instrumente dbGo (unde n este numărul câmpului), puneți fișierul xls și modul în care acesta poate fi readus în Excel. deși a doua parte este mai puțin semnificativă, deoarece crearea unui obiect OLE este o sarcină mai trivială.
TBlobField + F1 / Google Chew nu mestec.
PS. Explici elementele de bază ale programării - scumpe.
> Cum să conduci în câmpul blob imaginea pe care o știu, puteți face acest lucru
> utilizați TDBImage
Poate înota.
Și eu nu știu, nu lucrez cu Akces, nu-l cunosc deloc, cu mine lucrez
cod.
CREATE Tbl (binar MyBLob)
> Puteți utiliza TDBImage
Cu aceasta, în general, este simplu. Ctrl + C - Ctrl + V
În demo-uri, chiar și exemple sunt, de exemplu, Animal, jocam - funcționează.
Cred că îmi voi da codul oricum, îl va ajuta pe guru.
procedura TForm1.Button1Click (expeditor: TObject);
începe
# xA0; OpenDialog1.Execute ();
se încheie;
Ei bine, ca totul este clar, deschid dialogul, selectați fișierul.
procedura TForm1.Button2Click (expeditor: TObject);
var
# xA0; i: întreg;
# xA0; BLOBStream. TADOBlobStream;
începe
# xA0; ADOTable1.Active: = Adevărat;
# xA0; ADOTable1.First;
# xA0; pentru i: = 0 până la ADOTable1.RecordCount - 1 nu
# xA0; Începeți
# xA0; # xA0; ADOTable1.Delete;
# xA0; # xA0; ADOTable1.Next;
# xA0; Sfârșit;
# xA0; ADOTable1.Insert;
# xA0; ADOTable1.FieldByName ("Nume") Text: = "Fișier";
# xA0; BLOBStream: = TADOBlobStream.Create (TBlobField (ADOTable1.FieldByName ("Fișier")), bmWr ite);
# xA0; BLOBStream.LoadFromFile (OpenDialog1.FileName);
# xA0; BLOBStream.Free;
# xA0; ADOTable1.post;
# xA0; ADOTable1.Active: = False;
se încheie;
De asemenea, nu este nimic de înțeles, dar ceva mă confundă aici. Ideea era că atunci când butonul a fost apăsat, fișierul selectat a fost introdus în tabel prin flux. Înainte de aceasta, toate înregistrările din tabel sunt șterse (pentru confort, pentru a nu se hemoragia cu mai multe intrări).
procedura TForm1.Button3Click (expeditor: TObject);
var
# xA0; BLOBStream. TADOBlobStream;
# xA0; ADOTable1.Active: = Adevărat;
# xA0; ADOTable1.First;
# xA0; Edit1.Text: = ADOTable1.Fields [2] .Text;
# xA0; ADOTable1.Edit;
# xA0; BLOBStream: = TADOBlobStream.Create ((ADOTable1.Fields [3] ca TBlobField), bmReadWrite);
# xA0; BLOBStream.SaveToFile ("test.xml");
# xA0; BLOBStream.Free;
# xA0; ADOTable1.Active: = False;
se încheie;
Și se pare că ar trebui să conducă totul în fișierul EXCEL, dar când încerci să o deschizi mai târziu, dă o eroare. În principiu, am doar 2 răspunsuri la această întrebare:
1) Am condus incorect fișierul de la început în tabel
2) Am descărcat-o incorect, adică Nu inițializez aplicația EXCEL (ceva de genul createoleobject (Excel.Application)) bine, etc.
Dacă motivul este al doilea, atunci spune-mi cum să șterg corect din flux și apoi introduceți-l în fișier după crearea unui nou EXCEL.
Din nou e este recunoscător în avans.
> produce o eroare
Acesta este textul mesajului de eroare.
Iar asta, arunca ADOTable
Textul mesajului de eroare: "Imposibil de citit fișierul". Acest text dă EXCEL, iar Delphi nu produce nimic, din punctul ei de vedere, toate operațiile au fost efectuate, dar judecând după rezultatele deschiderii dosarului, ceva nu este așa))
Și cu ocazia ADOTable am scris deja mai sus, care a luat de exemplu ACCES și conexiune pe ADO aici, cel mai convenabil mi se pare.
Și există drepturi, și când un alt început?
> # xA0; BLOBStream.SaveToFile ("test.xml");
Drepturile sunt, se pare că într-un fel nu vrea să distileze fișierul din valori binare în EXCEL. al naibii de a doua zi de suferință
Toți au dat seama. În codul 1 eroare în loc de test.xml aveți nevoie de test.xls
Toate cele mai mari mulțumiri tuturor
Voi spuneți că există, dar în ce dosar și în alt moment?
> Textul mesajului de eroare: "Nu se poate citi fișierul".
> Acest text dă EXCEL, iar Delphi nu produce nimic, cu ajutorul lui
> punct de vedere, toate operațiunile au fost efectuate, dar au fost judecate după rezultate
> deschiderea fișierului este ceva greșit aici))
cumva încărcat în fișierul bazei de date și încărcați, format dot - deschideți notebook-ul - totul este bine, programul care îl folosește - nifika, jură. a fost distractiv - la sfârșitul fiecărei linii a fost adăugat sfârșitul paginii - # 12, aici. doar eu nu-mi amintesc cine a condus-o acolo - încărcat fișiere prog, scrise în delfin. dar C # a fost mizerabil. Poate, la voi prostii?
Memorie: 0,78 MB
Timp: 0.06 sec