Wczytywanie zdjęcia z bazy

Problemy związane z tworzeniem i zarządzaniem programami bazo-danowymi.
Regulamin działu


Zadając pytania dotyczące baz danych należy podawać szczegółowe informacje o bazie danych nad którą się pracuje, czyli:

  • Rodzaj serwera bazodanowego: MySql, MSSQL, Oracle itp.
  • Wersja bazy danych
  • Technologia bazodanowa używana w programie: ADO, DbExpress, InterBase
  • Komponenty użyte do zestawienia połączenia: ADOConnection, SqlConnection
  • Sposób zestawienia komponentów bazodanowych np. DataSet - DataSource - DbGrid lub DataSet - DataSetProvider - ClientDataSet - DataSource - DbGrid
  • Jeżeli używane były biblioteki innych firm niż Borland, CodeGeer i Embarcadero proszę podać ich nazwy, numer wersji i adres źródła.

Wczytywanie zdjęcia z bazy

Nowy postprzez mate006 » piątek, 1 października 2010, 10:52

Witam

W bazie mysql mam nazwę pliku zdjęcia, chciałbym spytać czy jest możliwość wczytania zdjęcia po kliknięciu na dbgrid do komponentu Image lub DBImage po wcześniejszym dodaniu ścieżki do folderu.
Próbowałem to zrobić w zdarzeniu OnCellClick komponentu dbgrid jednak nie wyświetla mi danego zdjęcia tylko poprzedni.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Wczytywanie zdjęcia z bazy

Nowy postprzez Cyfrowy Baron » piątek, 1 października 2010, 12:02

Próbowałem to zrobić w zdarzeniu OnCellClick komponentu dbgrid jednak nie wyświetla mi danego zdjęcia tylko poprzedni.


Podaj kod jaki umieściłeś w zdarzeniu, gdyż prawdopodobnie źle odwołujesz się do komórki z tekstem - tutaj nazwą zdjęcia.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Wczytywanie zdjęcia z bazy

Nowy postprzez mate006 » piątek, 1 października 2010, 13:29

KOD cpp:     UKRYJ  
void __fastcall TFilm::DBGridCellClick(TColumn *Column)
{
  String cover_path = ExtractFilePath(setup->ReadString("path","database",""))+"Cover\\"+DM->CDSFilm->FieldByName("cover")->AsString;

  if (FileExists(cover_path))
   {
      cover->Picture->LoadFromFile(cover_path);
   }
   else
   {
      cover->Picture = NULL;
   }
}
 

Wczytywać zdjęcie mi wczytuje jednak nie to które jest aktualnie zaznaczone, tylko to które było wcześniej zaznaczone
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Wczytywanie zdjęcia z bazy

Nowy postprzez Cyfrowy Baron » piątek, 1 października 2010, 13:45

Wczytywać zdjęcie mi wczytuje jednak nie to które jest aktualnie zaznaczone, tylko to które było wcześniej zaznaczone


Tak też przypuszczałem. Wynika to z faktu, że przy przejściu z jednej komórki do drugiej, obiekt zapamiętuje zawartość komórki z której wychodził, a nie do której wchodzi, dzieje się tak samo np. z tabelą StringGrid. Tego problemu nie da się obejść. Musisz wypróbować inne zdarzenia, może OnMouseUp.

Zastanawia mnie jeszcze jedno, niezależnie czy to będzie zdarzenie OnCellClick czy OnMouseUp, to każde kliknięcie myszą będzie wywoływać ten kod.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Wczytywanie zdjęcia z bazy

Nowy postprzez mate006 » piątek, 1 października 2010, 14:06

To dalej nie rozwiązuje problemu, ponieważ jak przechodzę miedzy komórkami za pomocą klawiatury czy scrolla to dalej jest to samo.

Ale znalazłem idealne rozwiązanie zamiast DBGrida zastosowałem DBLookupListBox1, i to jest to na czym mi zależało

Dzięki CyfrowyBaron za oświecenie mnie ;)
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Bazy danych

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron