
Fraunz81
Mitglieder-
Gesamte Inhalte
46 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Fraunz81
-
Hallo! Ich weis zwar nicht was du da programmiert hast, aber schau dir mal die folgende Seite an: http://www.pronix.de/pronix-4.html Unter Punkt 27 ist "MySQL mit C" beschrieben. Ist zwar für Windows aber man kann sich ein Bild machen was einem noch fehlen kann. Schau ob du eine Developer - Beschreibung zu deinem Server findest, die APIs für den Zugriff enthält. Ich hoffe es hilft dir weiter. Viel Spaß.
-
Hallo! Ich kenne mich zwar mit BCB6 nicht aus aber normalerweise kannst du mit folgenden Anweisungen in ein Textfeld schreiben: //Handle zu Textfeld bestimmen, wenn nicht bekannt hControl = GetDlgItem(hDlg, IDC_CHANGE_TEXT); //Eine Kurzbeschreibung in der EditBox anzeigen SendMessage(hControl, WM_SETTEXT, 0, (LPARAM) szpText); Erste Anweisung kann entfallen, wenn du den Handle zum Control schon hast. Wenn du von Microsoft das SDK hast kannst du danach auch offline suchen. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/wincontrols.asp Am besten du klickst das plus neben dem Eintrag "Individual Control Information" an, dann hast du alle Controls aufgelistet. Ich hoffe es hilft dir.
-
Gestern habe ich mich unter einem anderen Login angemeldet und da hat es funktioniert, als ich mich unter meinem Login angemeldet habe hat es nicht gefunkt. Jetzt habe ich meinen User samt HOME-Verzeichnis gelöscht und neuangelegt. Nun funktioniert es wieder.
-
Danke für deine Antwort. Leider hat es mir nicht geholfen. Unter KDE-Kontrollzentrum - Systemverwaltung - Anmeldemanager: Dort gibt es ein Dialogblatt "Sitzungen" da kann man einstellen für Konsole und Fremdrechner, wer den Computer herunterfahren darf. Einstellungen habe ich vorgenommen jedoch komme ich trotzdem sofort zum Login-Bildschirm zurück und kann erst jetzt mit dem Button "Beenden" den Computer herunterfahren bzw. neustarten. Wo liegen eingentlich die config-files für anmelden und abmelden? Kann mir das jemand sagen, vielleicht hilft mir das weiter. Besten Dank!
-
Das mit Konsole und so kommt bei mir nicht ganz in Frage, da meine Geschwister sich auch auf diesem Rechner einloggen. Trotzdem, danke. Hat sonst noch jemand einen Vorschlag wie man das wieder rückgängig machen kann? Ist das Problem eher auf KDE begründet, oder wurde durch den Kernel-Update dies verursacht? Besten Dank im voraus.
-
Hallo zusammen! Seid ich die ganzen Patches eingespielt habe kann ich bei Suse Linux 9.0 prof. unter KDE als Benutzer kein Logout - Menü mehr. Wenn ich mich abmelde komme ich sofort auf den Login - Bildschirm zurück und dann kann ich erst den Computer mit dem Button "Beenden" herunterfahren beenden bzw. neustarten. Kann man das wieder ändern?? Ich möchte die Auswahl haben zwischen nur abmelden, den Computer neustarten oder herunterfahren ohne mich vorher aus KDE abzumelden und erst beim Login - Bildschirm die Wahl zu haben. Mit BESTEM DANK im Voraus.
-
Hallo! Habe mir vor einem Monat eine DVD gebrannt mit CDBurnerXP 3. Jetzt wollte ich mir sämtliche Daten von der DVD wieder auf den Computer überspielen, leider ohne erfolgt. Entweder er kennt die DVD als LEER oder kannt die Daten schwer bis gar nicht lesen. Jetzt habe ich mir gedacht vielleicht ist die Session nicht abgeschlossen und brenne eine kleine Datei noch dazu. Ohne Erfolg. Das habe ich dann mit Nero 6 Reloaded auch noch mal versucht, jetzt kennt das DVD-Laufwerk die DVD nur noch als LEER. Kann man die Daten doch irgenwie noch wiederherstellen. Wäre über jeden Tipp sehr dankbar.
-
Ich habe zwar keinen HP aber bei meinem kann man den Druckkopf auch herausgeben (wo die Patronen hineingesteckt sind) und der war bei mir schon 2x kaputt. Den habe ich getauscht und der Drucker hat wieder funktioniert. Der Druckkopf war aber sehr teuer. Ich glaube so zwischen 40 - 50 Euro bei mir. Also schau nach bei deinem Drucker, nimm in mit zu einem Fachhandel und frage was die Meldung bedeuten kann (sofern sich der Fachhandel mit HP auskennt). Frage ob sie deinem Drucker einen Druckkopf, wenn wechselbar, unverbindlich einsetzen können um zu sehen ob der Fehler noch immer besteht. Bei mir hat das ganze nichts gekostet. Ausser du nimmt dann den Druckkopf, dann wirst du diesen bezahlen müssen.
-
Wenn du Pech hast erkennt dein System nur 256 MB. Auf jeden Fall würde ich in dein Handbuch fürs Mainboard (MB) schauen, da sind alle aufgelistet welche unterstützt werden.(z.B.: 32MB, 64MB, 128MB, 256MB, und vielleicht noch mehr) Wenn du keines hast musst du auf der Herstellerseite nach deinem MB suchen. Bei meinem MB (Asus P5A- werden max 256MB Riegel erkannt (bzw. sollten es). Bei mir hilft auch kein BIOS - Update, so weit ich informiert bin. Wie heißt dein MB und aus welcher Zeit stammt es?
-
Das sollte egal sein, meiner Meinung nach. Jedoch sollte eine davon als Master und eine als Slave gejumpert sein. Deine HDD wird nicht kapput sein. Ich denke mal es liegt am / an den Betriebssystem(en). Es kann vielleicht möglich sein, dass du Anpassungen im BIOS machen musst. Eine IDE-Erkennung laufen lassen, wenns das noch gibt. Vielleicht genügt es ins BIOS hineingehen und in die Standard Features (oder so), wo die HDDs aufgelistet werden, gehen und mit Save das BIOS verlassen. Es könnte sein das die Erkennung dann läuft und das System neu konfiguriert. Es hört sich so an als wurde Win98 zuerst installiert, jedoch auf der Slave - Platte und dann wurde Linux auf der Master - Platte installiert. Diesen Fehler solltes du in einem Linux Forum posten. Ich könnte mir vorstellen du hast Veränderungen an deinem Betriebssystem gemacht. (Kernel-Update z. B.) Da kommt LILO nicht ganz zu Recht, meistens sind da Anpassungen von Hand notwendig. Aber wie gesagt, besser im Linux Forum posten. Ich hatte änliche Probleme und da habe ich Linux neu aufgesetzt. Hat bei mir geholfen. Ich hoffe ich konnte DIR weiterhelfen.
-
Danke für eure Tipps und Infos. Werde da mal nachfragen bevor ich diese Hardware zusammenkaufe. Danke nochmal.
-
Danke Vossi1984 für deine Antwort. Werde das mal ausprobieren müssen, dann werd ich schon sehen was dabei rauskommt.
-
Ich habe mir den Link kurz angeschaut, aber ich glaube das bezieht sich nur wenn ich die HDD fest in den PC einbaue nicht aber auf USB. Tritt das Problem bei USB-Festplatten (selbst gebaut oder original gekauft) auch auf oder nicht??? Das würde ja sonst heißen ich kann diese HDD nur für ein System einrichten bzw. sonst müsste ich bei jedem PC od. Notebook in der Registry Einträge nachträglich hineinschreiben? Habe ich das richtig verstanden?? Ich wollte die USB-HDD wie einen riesen großen USB-Stick verwenden. Danke schon mal.
-
Ok. Danke für deine Hilfe. Ich denke "TextOut" wird zur Zeit ausreichend sein für mich. Danke noch mal.
-
Danke für deine Antwort. Werde das dann ausprobieren. Also deswegen wurde der Inhalt einer meiner SELECT-Anweisungen mitausgegeben. Ich habe mich schon gefragt und geärgert warum das alles ausgegeben wurde. Gibt es eine andere Möglichkeit Text auszugeben, oder ist die beste Möglichkeit eben das "TextOut" ?? Danke schon mal.
-
Danke für deine Antwort, aber ich habe da noch ein paar Fragen. Wenn ich die Tools vom Betriebssystem nehme gibt es da nicht Probleme wenn die HDD > 137 GB ist. Ich habe mich ein wenig auf der Maxtor-Seite umbeschaut, da gibts z. B.: das "maxblast3win.exe" oder ein Boot-Image zu Download. Sollte man diese Software verwenden, oder wie du schon geschrieben hast, ist es mit den Betriebssystem-Tools getan? Ich will folgendes kaufen: NN Gehäuse USB2 für 3,5 HDD (IDE) MAXTOR 7Y250P0 250GB 8MB 7200U/min 8,5ms Wird es da Probleme geben? Oder ist es besser ein 5,25 Zoll Gehäuse zu nehmen? Danke schon mal im voraus.
-
Hallo zusammen! Ich möchte mir einen USB-Rahmen und eine IDE Festplatte (120 GB oder 250 GB) kaufen und diese dann über USB ansprechen. Jetzt weiß ich aber nicht wie ich solche HDD formatieren kann bzw. welche Software dazu nötig ist und wo es diese zum Download gibt?? Auf was müsste ich dabei noch aufpassen?? (USB-Kabel, Netzgerät, ....) Wird man dann billiger kommen als eine fertige USB-HDD zu kaufen. Mal abgesehen von der Arbeit(szeit). Wenn ihr eine IDEE habt, bitte posten. Danke schon mal.
-
Hallo zusammen! Ich habe mir eine Druckfunktion von einem Buch heraus abgeschrieben, die eingentlich für eine TextBox gedacht ist. Ich habe sie jetzt ein bißchen modifiziert und es funtkioniert leider nicht ganz. Ich will von einer ListView die ersten 3 Spalten ausgegeben. Dieses funktioniert auch jedoch wird dann noch etwas ausgegeben von einer MySQL-Anfrage. z.B.: 1 112 aus der mitte entspringt ein Fuss b.hauptdarstellerid, b.hauptdarsteller.... 2 120 Die Mumie tte entspringt ein Fuss b.hauptdarstellerid, b.hauptdarsteller.... Bis die Zeile voll ist. Es sollte aber nach dem "Die Mumie" nichts mehr dortstehen. Hier die Funktionen: BOOL LVPrntPrintFile(HINSTANCE hInst, HWND hwnd, HWND hwnd_ListView, PTSTR szTitleName) { static DOCINFO di = {sizeof(DOCINFO)}; static PRINTDLG pd; BOOL bSuccess; int yChar, iCharsPerLine, iLinesPerPage, iTotalLines, iTotalPages, iPage, iLine, iLineNum; PTSTR pstrBuffer; TCHAR szJobName[64 + MAX_PATH]; TEXTMETRIC tm; WORD iColCopy, iNoiColCopy; //Aufruf des Druck-Dialogs(COMMDLG) pd.lStructSize = sizeof(PRINTDLG); pd.hwndOwner = hwnd; pd.hDevMode = NULL; pd.hDevNames = NULL; pd.hDC = NULL; pd.Flags = PD_ALLPAGES | PD_COLLATE | PD_RETURNDC | PD_NOSELECTION; pd.nFromPage = 0; pd.nToPage = 0; pd.nMinPage = 0; pd.nMaxPage = 0; pd.nCopies = 1; pd.hInstance = NULL; pd.lCustData = 0L; pd.lpfnPrintHook = NULL; pd.lpfnSetupHook = NULL; pd.lpPrintTemplateName = NULL; pd.lpSetupTemplateName = NULL; pd.hPrintTemplate = NULL; pd.hSetupTemplate = NULL; if (!PrintDlg(&pd)) return TRUE; if (0 == (iTotalLines = SendMessage(hwnd_ListView, LVM_GETITEMCOUNT, 0, 0))) return TRUE; //Schriftgröße ermitteln, darüber Zeilenzahl und Seitenzahl berechnen GetTextMetrics(pd.hDC, &tm); yChar = tm.tmHeight + tm.tmExternalLeading; iCharsPerLine = GetDeviceCaps(pd.hDC, HORZRES) / tm.tmAveCharWidth; iLinesPerPage = GetDeviceCaps(pd.hDC, VERTRES) / yChar; iTotalPages = (iTotalLines + iLinesPerPage - 1) / iLinesPerPage; printf("iCharsPerLine: %d\n", iCharsPerLine); printf("iLinesPerPage: %d\n", iLinesPerPage); printf("iTotalPages: %d\n", iTotalPages); //Puffer für eine Textzeile pstrBuffer = (PTSTR) malloc(sizeof(TCHAR) * (iCharsPerLine + 1)); //Hauptfenster deaktivieren, Abbruchdialog anzeigen EnableWindow(hwnd, FALSE); bSuccess = TRUE; bUserAbort = FALSE; hDlgPrint = CreateDialog(hInst, TEXT("PrintDlgBox"), hwnd, PrintDlgProc); SetDlgItemText(hDlgPrint, IDC_FILENAME, szTitleName); SetAbortProc(pd.hDC, AbortProc); //Start des Ausdruckens GetWindowText(hwnd, szJobName, sizeof(szJobName)); di.lpszDocName = szJobName; if (StartDoc(pd.hDC, &di) > 0) { //Sortierreihenfolge und Anzahl der Kopien for (iColCopy = 0; iColCopy < ((WORD) pd.Flags & PD_COLLATE ? pd.nCopies : 1); iColCopy++) { for (iPage = 0; iPage < iTotalPages; iPage++) { for (iNoiColCopy = 0; iNoiColCopy < (pd.Flags & PD_COLLATE ? 1: pd.nCopies); iNoiColCopy++) { //Start einer Seite if (StartPage(pd.hDC) < 0) { bSuccess = FALSE; break; } //zeilenweise Ausgabe for (iLine = 0; iLine < iLinesPerPage; iLine++) { iLineNum = iLinesPerPage * iPage + iLine; if (iLineNum > iTotalLines) break; //Ausgabe von Text zum Drucker //pstrBuffer = LVString_func(hwnd_ListView, iCharsPerLine, iLine); LVString_func(hwnd_ListView, pstrBuffer, iCharsPerLine, iLine); TextOut(pd.hDC, 0, yChar * iLine, pstrBuffer, iCharsPerLine); } if (EndPage(pd.hDC) < 0) { bSuccess = FALSE; break; } if (bUserAbort) break; } if (!bSuccess || bUserAbort) break; } if (!bSuccess || bUserAbort) break; } } else bSuccess = FALSE; if (bSuccess) EndDoc(pd.hDC); if (!bUserAbort) { EnableWindow(hwnd, TRUE); DestroyWindow(hDlgPrint); } free(pstrBuffer); DeleteDC(pd.hDC); return bSuccess && !bUserAbort; } void LVString_func(HWND hwnd_ListView, PTSTR &pstrBuffer, int iCharsPerLine, int iItem) { int cchTextMax; TCHAR *szpTemp; TCHAR szfNr[6] = "", szID[6] = "", szFilmbezeichnung[85] = "", szFilmLenght[20] = "", szVideoformat[15] = "", szGenre[25] = ""; ListView_GetItemText(hwnd_ListView, iItem, 0, szfNr, 3); ListView_GetItemText(hwnd_ListView, iItem, 1, szID, 3); ListView_GetItemText(hwnd_ListView, iItem, 2, szFilmbezeichnung, 80); szpTemp = (TCHAR *) malloc(sizeof(TCHAR) * (iCharsPerLine + 1)); strcpy(pstrBuffer, " "); wsprintf(szpTemp, "%5s %5s %s", szfNr, szID, szFilmbezeichnung); strcpy(pstrBuffer, szpTemp); free(szpTemp); } PS.: Die Ausgabe erfolgt nicht direkt am Drucker sondern in ein PDF-File mittels PDFCreator (ist ein Druckertreiber); Hat da jemand eine Idee was falsch sein könnte. Vielen Dank im voraus.
-
Danke für deine Hilfe. Ich werde das Mal versuchen.
-
Erstmals Danke für deine Antwort. Mein Programm ist in C/C++ geschrieben und ist eine Windowsanwendung. Ich habe das vielleicht schlecht formuliert: Wenn ich in der Console ein z. B.: UPDATE filmgenre set filmart = 'Komödie' where filmartid = 10; mache, wird das Umlaut in der Console richtig dargestellt. In meinem Programm dann leider nicht. Wenn ich in der Console über LOADFILE die Daten in die Datenbank schreibe passen die Umlaute in meinem Programm Lese ich diese Daten mit einer SELECT - Anweisung in mein Programm ein wird es eben als doppeltes Hochkomma dargestellt (wird nicht in der Console ausgegeben sondern in meinem Programm in einer Tabelle (ListView)). In welchem Format (ANSI, ASCII, UNICODE) werden in einer MySQL Datenbank die Daten abgespeichert? Ist es möglich eine Konvertierung (ASCII -> UNICODE, ...) mit der Sprachreferenz von MySQL durchzuführen? Bin über jede Antwort froh. Danke schon mal.
-
Hallo zusammen! Wenn ich Daten über eine Datei in die MySQL - Datenbank lade, werden die Umlaute in der Console falsch dargestellt. In meinem Programm aber wieder richtig. Wenn ich Daten über ein UPDATE - Statement einfüge werden die Umlaute in der Console richtig dargestellt. In meinem Programm aber falsch (z.B.: ö = "). Kann man das irgenwie umgehen? Ich kann damit leben wenn die Daten in der Console falsch angezeigt werden, aber nicht in meinem Programm (Front-End-Programm). Ich habe zwar in der MySQL Reference geblättert, jedoch fündig bin ich bis jetzt nicht geworden. Schönen Dank schon mal im voraus.
-
Ich dachte mit dem InsertItem wird nur eine neue Zeile eingefügt, jodch kein Text. Geht aus der SDK bzw. MSDN nicht wirklich hervor - zumindest für mich. Oder mein Englisch ist ein wenig rost-durch-drungen. Ich weis nicht warum ich die 2. for-Schleife und das switch eingebaut habe. Ich denk mal in der hektig gestern, habe da wohl zu wenig überlegt. Danke für die Tipps.
-
Wenn es jemanden interessiert, so füge ich meine Struct in das ListView ein. Vielleicht hat jemand Verbesserungsvorschläge. void ListView_add_Data(HWND hwnd_ListView) { unsigned long i = 0, j = 0, n = 0; unsigned long anzahl_zeichen = 0; long lIndex = 0; TCHAR *szpTemp = NULL, sz_vid[10] = ""; TCHAR *szpBindestrich = " - ", *szpStrichpunkt = "; "; TCHAR szString[MAX_PATH] = ""; LVITEM lvItem; lvItem.mask = LVIF_TEXT; for(n = 0; n < iDatensaetze; n++) { for(i = 0; i < 11; i++) { switch(i) { case 0: //BOOL ListView_SetItem(HWND hwnd, const LPLVITEM pitem); wsprintf(sz_vid, "%d", n + 1); lvItem.iItem = n; lvItem.iSubItem = i; lvItem.pszText = sz_vid; lIndex = ListView_InsertItem(hwnd_ListView, &lvItem); ListView_SetItemText(hwnd_ListView, n, i, sz_vid); break; case 1: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpid); break; case 2: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpName); break; case 3: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpFilmlength); break; case 4: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpVQuality); break; case 5: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpGenre); break; case 6: j = 0; anzahl_zeichen = 0; for(j = 0; j < dbD_ptr[n].iAudio_count; j++) { anzahl_zeichen += strlen(*(dbD_ptr[n].szpSprache + j)) + strlen(szpBindestrich) + strlen(*(dbD_ptr[n].szpAQuality + j)) + strlen(szpStrichpunkt); } szpTemp = (TCHAR *) malloc(sizeof(TCHAR) * (anzahl_zeichen + 1)); for(j = 0; j < dbD_ptr[n].iAudio_count; j++) { if (j == 0) strcpy(szpTemp, *(dbD_ptr[n].szpSprache + j)); else strcat(szpTemp, *(dbD_ptr[n].szpSprache + j)); strcat(szpTemp, szpBindestrich); strcat(szpTemp, *(dbD_ptr[n].szpAQuality + j)); strcat(szpTemp, szpStrichpunkt); } ListView_SetItemText(hwnd_ListView, n, i, szpTemp); free(szpTemp); break; case 7: j = 0; anzahl_zeichen = 0; for(j = 0; j < dbD_ptr[n].iActor_count; j++) { anzahl_zeichen += strlen(*(dbD_ptr[n].szpActor + j)) + strlen(szpStrichpunkt); } szpTemp = (TCHAR *) malloc(sizeof(TCHAR) * (anzahl_zeichen + 1)); /* if (szpTemp == NULL) { MessageBox(NULL, TEXT("Zu wenig Speicher"), TEXT("Speicher?"), MB_OK); szpTemp = (TCHAR *) malloc(sizeof(TCHAR) * 30); wsprintf(szpTemp, "%s", "zu wenig Speicher"); } else { */ for(j = 0; j < dbD_ptr[n].iActor_count; j++) { if (j == 0) strcpy(szpTemp, *(dbD_ptr[n].szpActor + j)); else strcat(szpTemp, *(dbD_ptr[n].szpActor + j)); strcat(szpTemp, szpStrichpunkt); } ListView_SetItemText(hwnd_ListView, n, i, szpTemp); free(szpTemp); break; case 8: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpUser); break; case 9: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpAnzahl); break; case 10: ListView_SetItemText(hwnd_ListView, n, i, dbD_ptr[n].szpText); break; }//ende switch(i) } //ende for(j = 0; j < 11; j++) } //ende for(i = 0; i < iDatensaetze; i++) } Viel Spaß damit.
-
Ich habe mich jetzt ein wenig schlau gemacht in der MSDN. Damit ich kein virtuelles ListView mehr habe müsste ich den Style LVS_ONERDATA herausnehmen. Dann bekommt man auch keine LVN_GETDISPINFO - Nachrichten mehr. Ist hoffentlich richtig so? Um Daten zu dem virtuellen ListView hinzufügen zu können müsste ich mein dynamisches dbD_ptr - Array immer wieder vergrössern und kann auch nicht, wie ich wollte, die Message LVM_SETITEMTEXT verwenden, die ich in der Funktion void ListViewItem_add(HWND hwnd_ListView) verwende. Das sind Gründe um kein virtuelles ListView zu verwenden, zumindest zur Zeit. Hast du einige Tipps, wie ich "schnell" und unkompliziert die Daten in ein normales ListView eintragen kann, oder muss ich jede einzelne Zeile, so wie ich es mit der Funktion ListViewItem_add(HWND hwnd_ListView) mache, einfügen? Danke. PS: Hoffentlich bekomme ich den Umbau ohne viele Seufzer hin
-
Also kann ich item.cchTextMax nicht verändern? Das könnte ich z. B.: dann so lösen: item.pszText = dsh.pszName ist das richtig? Ein virtuelles ListControl muss ich nicht wirklich haben, aber das habe ich gefunden und habe es deshalb eingebaut. Wie könnte ich die Texte hineinschreiben, wenn ich das nicht sofort mache. Komme ich da nicht mit dem WM_NOTIFY und der struct dbD_ptr in konflikt?? Für dbD_ptr wird in 5 Funktionen die Daten eingelesen - kommen von einer MySQL Datenbank. 1. Funktion sieht wie folgt aus: void filmtable_data() { unsigned long anzahl_reihen = 0; unsigned int i = 0, j = 0; int iIndex = 0, iLength = 0; MYSQL_ROW row; MYSQL_RES *mysql_res; TCHAR *query; TCHAR *select = "SELECT * FROM filmtable WHERE besitzerid = "; TCHAR *select1 = "SELECT * FROM filmtable " "order by besitzerid, videoformatid, filmbezeichnung"; query = (TCHAR *) malloc(strlen(select1) + 1); strcpy(query, select1); /* Jetzt die Anfrage an den Datenbankserver */ mysql_query(mysql, query); check_error(); /* Daten der Anfrage abholen */ mysql_res = mysql_store_result(mysql); check_error(); /* Anzahl der gefundenen Datensätze ermitteln */ anzahl_reihen = (unsigned long) mysql_num_rows (mysql_res); iDatensaetze = anzahl_reihen; dbD_ptr = (struct _dbDaten *) malloc(sizeof(_dbDaten) * anzahl_reihen); /* Gefundener Datensatz bzw. Datensätze ausgeben */ while ((row = mysql_fetch_row (mysql_res)) != NULL) { /* Einzelne Spalten der Zeile ausgeben */ for (i = 0; i < mysql_num_fields(mysql_res); i ++) switch(i) { case 0: //Hier kann man die ID erfassen dbD_ptr[j].id = str2int(row[i]); dbD_ptr[j].szpid = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(row[i]) + 1)); wsprintf(dbD_ptr[j].szpid, "%s", row[i]); break; case 1: //Filmbezeichnung dbD_ptr[j].szpName = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(row[i]) + 1)); wsprintf(dbD_ptr[j].szpName, "%s", row[i]); break; case 2: //Filmlänge dbD_ptr[j].szpFilmlength = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(row[i]) + 1)); wsprintf(dbD_ptr[j].szpFilmlength, "%s", row[i]); break; case 3: //VideoformatID dbD_ptr[j].iVformatID = str2int(row[i]); if (dbD_ptr[j].iVformatID) { dbD_ptr[j].szpVQuality = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(*(video.format + (dbD_ptr[j].iVformatID - 1))) + 1)); wsprintf(dbD_ptr[j].szpVQuality, "%s", *(video.format + (dbD_ptr[j].iVformatID - 1))); } break; case 4: //FilmartID dbD_ptr[j].iGenreID = str2int(row[i]); if (dbD_ptr[j].iGenreID) { dbD_ptr[j].szpGenre = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(*(genre.art + dbD_ptr[j].iGenreID - 1)) + 1)); wsprintf(dbD_ptr[j].szpGenre, "%s", *(genre.art + dbD_ptr[j].iGenreID - 1)); } break; case 5: //BesitzerID dbD_ptr[j].iBesitzerID = str2int(row[i]); dbD_ptr[j].szpUser = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(*(besitzer.user + dbD_ptr[j].iBesitzerID - 1)) + 1)); wsprintf(dbD_ptr[j].szpUser, "%s", *(besitzer.user + dbD_ptr[j].iBesitzerID - 1)); break; case 6: //Medienanzahl dbD_ptr[j].szpAnzahl = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(row[i]) + 1)); strcpy(dbD_ptr[j].szpAnzahl, row[i]); break; case 7: //Kurzbeschreibung dbD_ptr[j].szpText = (TCHAR *) malloc(sizeof(TCHAR) * (strlen(row[i]) + 1)); strcpy(dbD_ptr[j].szpText, row[i]); break; } j++; } /* Speicherplatz wieder freigeben */ mysql_free_result(mysql_res); free(query); } Diese Daten lese ich noch bevor das ListView erzeugt wird ein. //Füllen der struct _dbDaten filmtable_data(); //Audiodaten abfragen und speichern audiotable_count(); audiotable_data(); //Schauspielerdaten abfragen und speichern schauspieler_count(); schauspieler_data();