Avatar billede stone Forsker
21. januar 2004 - 23:37 Der er 15 løsninger

dynamisk image

Jeg ønsker at få vist alle billeder i en database på en form hvor der bliver oprettet Timage alt efter hvor mange billeder der er.

billederne skal vises som thumbnails.
Avatar billede angelod Novice
22. januar 2004 - 22:57 #1
Mmhmm.. Jeg er ikke helt sikker på hvad spørgsmålet er.
Avatar billede stone Forsker
22. januar 2004 - 23:18 #2
grafik bliver indlæst i database enten via filsystem eller via scanner,

brugeren af programmet kan efter hvormange billeder der er lagret i databasen vælge
at se alle billeder fra databasen som thumbnails.NU ved jeg jo ikke hvormange billeder den enkelte bruger indlæser i databasen.

den aktuelle post der er tilknyttet et billede kan så genbruges i en anden post ved valg af et billede som er vist som thumbnails.

valg af billede vil jo være lettere hvis man havde en oversigt over alle billeder som er i databasen.
Avatar billede angelod Novice
22. januar 2004 - 23:56 #3
Lad mig se om jeg forstår dig ret.. Gemmer du fysisk billederne i databasen? Det plejer ikke at være noget jeg vil anbefale. Det er alt for megen data. Istedet plejer jeg at have et link i databasen der på en eller anden måde fortæller mig hvor billedet ligger fysisk, og derefter bruger jeg det til at linke med.
Avatar billede stone Forsker
23. januar 2004 - 00:52 #4
billedernes bliver kun på ca 23kb,så det er ikke noget problem, da jeg har haft indlæst 1000 billeder uden problemer. Databasen laver nye datafiler *.ma1 *.ma2 osv...
Avatar billede hrc Mester
25. januar 2004 - 00:41 #5
angelod har ret. Alle billeddatabaser gemmer IKKE billeddata som blob-felter. Det er for tungt og hvis det laves ordentligt, så fungerer det bedst med links - vil råde dig til at overveje angelod's løsning, også selvom du "bare" kun roder med 23MB data). Den er mere professionel.
Avatar billede janbb Juniormester
25. januar 2004 - 03:07 #6
Spændende project - og du har da ret i at der eksisterer sådanne programmer som du beskriver .Og de er formentlig lavet i Delphi ?.Men det lyder som en tung opgave (kan dog være jeg tager fejl, som så ofte tidligere i den slags spm.).
En HTM-side, der listes via en database med linkadresser virker mere til at overse og vælges formentlig ofte fordi der så osse er mulighed for ikke at hænge fast i "alle billeder", idet du jo kan lave grupper med SQL udfra valg i en combobox f.x..Metoden er osse god til at holde styr på andre former for links.Det er næppe det du er ude efter, men ellers er der et program på about.delphi.com, der laver den ønskede streng til HTM-siden.Kan finde den til dig hvis du har lyst.
Avatar billede stone Forsker
25. januar 2004 - 10:39 #7
ok prøver at kigge på link, og i har ret i at det er nemmere at arbejde via connect til sql, ligeledes tilgangstiden bliver hurtigere ved større datamængder. Det var også fordi jeg ikke ønskede at skifte database, da den jeg bruger for tiden ikke understøtter sql, men måske kan man lave det med 2 databaser så kun billeder bliver styret via sql. eller..... må prøve mig frem til en mere tidsvarig løsning.

Hvis i har yderligere link til emnet må i gerne lægge dem ind...

I kan allle smide et svar så deler jeg mellem jer.

//stone
Avatar billede janbb Juniormester
25. januar 2004 - 12:05 #8
Avatar billede janbb Juniormester
25. januar 2004 - 12:08 #9
Jeg må desværre indrømme det er langt lettere i VBScript, men næppe lisså behageligt .-)
Avatar billede janbb Juniormester
25. januar 2004 - 12:15 #10
<%@ LANGUAGE = "VBScript" %>
<% ' Option Explicit %>

<h1>BilledDB</h1>
<hr size=2 color="blue">
<%
    Dim objConn
    Dim objRs
    Dim FilePath
    Dim Index
   
    ' Map database to phsycical path
    FilePath = Server.MapPath("billeddb.mdb")
   
    ' Creates db connection
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath
   
    ' creates Rs-object (obj that executes the SQL cmd)
    Set objRs = objConn.Execute("SELECT * From tabel")
   
%>
<%
' creating table
%>
<table>
  <tr>
    <td><b>Billedrækkex</b></td>
    <td><b>Billedrækkex</b></td>
    <td><b>Billedrækkex</b></td>
    <td><b>Billedrækkex</b></td>
    <td><b>Billedrækkex</b></td>
  </tr>
<% Do While (Not objRs.eof) %>
  <tr>
      <% For Index=0 To (objRs.fields.count-1) %><td><%=objRs(Index) %></td><% Next %>
  </tr>
  <% objRs.MoveNext
      Loop %>
</table>

<%
    ' closes the objects(objConn and objRs)
    objRs.Close
    objConn.Close
%>
Avatar billede janbb Juniormester
25. januar 2004 - 12:19 #11
Db-en skal ligge i samme bib som asp-filen (det er et eks jeg fandt på en webside - jeg husker desværre ikke længere hvilken).SQL-kommandoen kan man variere efter lyst - lissom i Delphi.
Avatar billede angelod Novice
25. januar 2004 - 14:52 #12
Wow.. Det ser da ellers godt nok rodet ud det der.. Nu kan jeg huske hvorfor jeg droppede ASP til fordel for PHP.. Hvis man laver det ret meget større end 20 linier langt, så bliver det rodet og uoverskueligt, syntes jeg, men det er jo et spørgsmål om hvad man bedst kan lide.

Nåh, men ellers, jeg ved ikke helt hvor stor hjælp jeg har været til, men jeg skal da nok skrive et svar. Du bestemmer så selv om du vil give point eller ej. :o)
Avatar billede janbb Juniormester
26. januar 2004 - 01:20 #13
"kernen" i programmet fra db-tut. kap. 20 ligger i nedenstående procedure, der laver et output, der vises i TWebbrowser.Kan varieres ved at ændre på det der skal sættes ind i strengen 'shtml' og man kan f.x. som her sætte en delstreng ind, der aut. laver en adresse om til et link.

procedure TForm1.Button1Click(Sender: TObject);
var
  shtml    : widestring;
  htmlfile  : TextFile;
  i        : integer;
  AvailableFields: set of  TFieldType;
begin
AvailableFields:=[ftWideString, ftDate,  ftFloat];
//open query
ADOQuery1.SQL.Text:=Edit2.Text;
ADOQuery1.Open;

// --> create a html page

//html header
  shtml:= '<html> <head> <title>';
  shtml:= shtml + Edit2.Text;
  shtml:= shtml + '</title></head>' + #13#10;
  shtml:= shtml + '<body><BODY BGCOLOR="#AAAACC">' + #13#10;

  shtml:= shtml + Memo2.Text + #13#10;

//table header
  shtml:= shtml + '<table border="0" width="100%">' + #13#10;
  shtml:= shtml + '<tr>' + #13#10;
  for i:=0 to AdoQuery1.FieldCount-1 do
  begin
    if ADOQuery1.Fields[i].DataType in AvailableFields  then
    begin
      shtml:= shtml + '<td>';
      shtml:= shtml +
              '<b>' +
              ADOQuery1.Fields[i].DisplayName +
              '</b>';
      shtml:= shtml + '</td>' + #13#10;
    end;
  end;{for}
  shtml:= shtml + '</tr>' + #13#10;

//table body
  while not adoquery1.Eof do
  begin
    shtml:= shtml + '<tr>' + #13#10;
    for i:=0 to AdoQuery1.FieldCount-1 do
    begin
      if ADOQuery1.Fields[i].DataType in AvailableFields then
      begin
        shtml:= shtml + '<td>';
        shtml:= shtml + '<a href="' + ADOQuery1.Fields[i].AsString+'">' + ADOQuery1.Fields[i].AsString + '</a>';

       
        shtml:= shtml + '</td>' + #13#10;
      end;
    end;{for}
    shtml:= shtml + '<td>comments</td></tr>' + #13#10;
    ADOQuery1.Next;
  end;{while}
  shtml:= shtml + '</table>' + #13#10;

  shtml:= shtml + Memo4.Text + #13#10;
  shtml:= shtml + memo3.text + #13#10;
  shtml:= shtml + '</body></html>';
// --> assign to memo
  Memo1.Text := shtml;
  memo1.Lines.SaveToFile('baby.htm');
// --> save in a htm file

AssignFile(htmlfile, 'test.htm');
//ChangeFileExt(Application.ExeName,'.htm'));
Rewrite(htmlfile);
//WriteLn( htmfile,shtml);
CloseFile(htmlfile);


// --> browse to the file
//WebBrowser1.Navigate(aboutproject1.htm);
//WebBrowser1.Navigate('test.htm');
WebBrowser1.Navigate(ChangeFileExt(
    Application.ExeName,'.htm'));
end;{Button1.OnClick}


Det er lidt 'tungt', men meget lærerigt for f.x. een som mig, der ikke er så stiv i srengbehandling.
Det fungerer formentlig osse selvom man vælger noget andet end ADO.
Avatar billede janbb Juniormester
26. januar 2004 - 01:44 #14
Programmets navn sættes lig outputfilen, der sættes som den fil der åbnes aut. når proc. kaldes.Ved mulighed for flere SQL-kombinationer (combobox) sættes en (ADO-)-/ el. query.close ind i starten af proceduren.
Der er dog ikke umiddelbart mulighed for flere rækker hvis du ikke vil have samme strengbehandling i hver række - så tricket med at lave aut. links kan ikke bruges i forbindelse med fx kommentarer.Hvilket er en skam, men een der var klogere end mig kunne formentlig løse dette problem.
Avatar billede stone Forsker
26. januar 2004 - 08:50 #15
takker så har jeg lidt at kigge på
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester