Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Schau Dir meine Abfrage nochmal an.
Du kannst unterschiedliche Tabellenaliase erstellen, die sich aber auf die gleiche Tabelle beziehen.
Alias a und b verweisen auf die gleiche Tabelle.
Für Dich müsste es also so aussehen:
SELECT a.ArtNr,
( SELECT count( [CH-Wert] ) FROM table_info b WHERE a.ArtNr = b.ArtNr and [CH-Wert] = 'A' ) as A,
( SELECT count( [CH-Wert] ) FROM table_info b WHERE a.ArtNr = b.ArtNr and [CH-Wert] = 'B' ) as B,
( SELECT count( [CH-Wert] ) FROM table_info b WHERE a.ArtNr = b.ArtNr and [CH-Wert] = 'C' ) as C
FROM table_info a
GROUP BY a.ArtNr
Sodala, Problem gelöst !
Meine finale Lösung sieht jetzt so aus:
SELECT
Typ AS AA,
COUNT(DISTINCT Untertyp1) AS BB,
COUNT(DISTINCT Untertyp2) AS CC,
COUNT(DISTINCT Untertyp3) AS DD
FROM table_uno
GROUP BY Typ;
@TNTNET:
Hier war nicht von MySQL dir Rede. Andere Datenbanken liefern die Anzahl geänderter Datensätze nicht zurück. Mein Posting war auch nicht gegen Dich gerichtet.
Bei MySQL ist die Abfrage nach geändertem Datensatz schneller (bzw. fragt man das garnicht ab sondern MySQL liefert es immer zurück) schneller als wenn man LOCK TABLES einsetzt.
Es gibt eben nicht immer für alles eine Lösung mit einem Query.
als string "beispielordner/deinbild.jpg" reinschreiben
http://www.delphipraxis.net/topic32483.html
und die bilder in diesem ordner lagern.
ein blob ist zu dicke, du kannst natürlich die daten des bildes binär reinlegen, und dann beim ausgeben den typ herstellen, bei mehreren bildern bläht das jedoch deine db auf.
Einfache Antwort: ja, Access sucht nach einem Makro mit dem Namen AutoExec. Wenn es dieses Skript gibt wird es direkt beim Start ausgeführt.
Ich bin zufällig auf diesen Thread gestoßen. Ich hab nämlich auch ein Problem in dieser Richtung:
Gibt es eine Möglichkeit, ein Makro in regelmäßigen Abständen (z.B. 1x im Monat) auszuführen? Access läuft 24/7...
Danke schonmal für eventuelle Antworten.
Jau, Fehler gefunden, die Abfrage bzw. das senden des Datensatzes klappt wunderbar! Es haben einfach nur in dem VALUES(...) Teil die Hochkomma's gefehlt. Danke an dieser Stelle, Problem behoben
CREATE TABLE IF NOT EXISTS tabelle ...
Ansonsten alle Tabellen auflisten lassen und schauen, ob deine dabei ist.
*edit*
Ich habe einfach mal angenommen dass du (My)SQL meinst, da du keine weiteren Angaben gemacht hast.
so, auch wenn bis jetzt noch nichts gekommen ist, frag ich mal weiter... Das Board ist mir irgendwie sympathisch
Hab jetzt MyODBC Connector installiert und ein System-DSN angelegt.
Jetzt bin ich bei den Tabellen-Engines angelangt.
Welche der Engines ist empfehlenswert?
MyISAM > Standard, schnell, keine Transaktionen (brauch ich ja auch nicht), aber ab MySQL 5.1 nicht mehr unterstuetzt
InnoDB > Auch ein etablierter Standard und schnell
ARCHIVE > "dient der Speicherung großer Datenmengen ohne Indizes" > was will ich mit einer DB ohne Indizes? Bringt mir das was?
Erstmal verwende ich MyISAM.
Werde nun uebrigens doch Visual Studio mit ODBC benutzen.
Habe eine normale MFC-Anwendung mit ODBC-Anbindung erstellt und meine DSN-Daten eingetragen, muss ich nochwas beachten, um nicht spaeter nochmal anfangen zu muessen?
MfG
problem gelöst. für alle die danach suchen:
CDatabase db;
CString ODBC;
CDBGerSet rs;//( &db );
ODBC = "DRIVER={MySQL ODBC 3.51 Driver};PORT=3306;SERVER=125.454.55.5;DATABASE=test;USER=aer;PWD=ew87re";
db.OpenEx(ODBC, db.noOdbcDialog);
if (!db.IsOpen())//falls öffnen fehlgeschlagen
{
AfxMessageBox("Fehler beim Verbinden mit Datenbank");
}
else
{
rs.Open();
ASSERT(rs.IsOpen());//rs konnte nicht geöffnet werden
rs.AddNew();
rs.m_Spalte = m_irgendwas;
if( !rs.Update( ) )
{
AfxMessageBox( "Record not added; no field values were set." );
}
rs.Close();
}
db.Close();
Guten Morgen,
Eine kurze Frage, ich habe ein Recordset und möchte mir gern eine SQL Abfrage für eine Access DB dynamisch zusammenbauen.
Gibt es eine Möglichkeit den Feldnamen irgendwie auszulesen?
Wie ich das FieldValue ermittel weiß ich bereits, jedoch müßte ich daher vorher erst den Feldnamen ermitteln. Geht dies überhaupt, falls ja, welche Ansätze müßte man verwenden?
Vielen Dank im Voraus für eure konstruktiven Antworten
inva
*edit*
Ich habe eine mögliche Lösung gefunden, ob diese funktioniert weiß ich noch nicht
Aber ich möchte sie euch nicht vorenthalten:
Zuerst ermittelt man mit Hilfe der CADORecordset Methode GetFieldCount() die Anzahl der pro Datensatz vorhandenen Felder.
CADORecordset stellt die Methode GetFieldInfo zur Verfügung, welche als 1. Parameter den Feldnamen ODER den Index benötigt und als zweiten einen CADOFieldInfo Pointer, in welchem alle relevanten Infos gespeichert werden.
Der Code könnte so aussehen:
int iAnzFields = (*m_Rs).GetFieldCount();
int iField=0;
while(iField < iAnzFields)
{
.
.
.
if(m_Rs->GetFieldInfo(iField,p_FieldInfo))
{
.
.
.
}
.
.
.
iField++;
}
Mehr ists nicht, rein theoretisch sollte es so klappen. In diesem Sinne, noch einen angenehmen Tag.
das macht natürlich nichts, wie war das? "ist der Code erst ruiniert, frickelt sichs ganz ungeniert" oder so :>
Halt eine Abfrage vorher ob 1 vorhanden ist, wenn ja dann obiges, wenn nein dann freie Nummer = 1 und gut is.
Ich will das ja nicht benoten lassen, sondern für viel Geld verkaufen.
Ne mal ernsthaft, ich bin für eine sauberere Lösung gern zu haben wenn es da noch was gibt, aber nicht wenn ich erstmal ne Woche lang die ganze Datenbank umbauen muss und nen Haufen jetzt gut funktionierenden Quellcode anfassen muss, nur damit der Kunde einmal am Tag eine Sekunde Zeit spart, andere Vorteile würd das nicht bringen.
neues schema:
user
group
profile
* id = pk + ref auf user
* n paar felder für sachen wie icq, homepage und den ganzen informationskram
* anzahl der posts
Forum
* name
* parent ref auf forum
* readers : ref auf group
* writers : ref auf group
* moderators : ref auf group
* links : ref auf forum
Thread
* titel
* forumref
* userref
* username ( wird gesetzt wenn userref auf den anon user zeigt)
* c/mtime
* kind - eins von moved movedref, normal, article
* moved_to ref thread nullbar
* is_closed
*** über die letzten beiden bin ich mir ned so sicher
Post
* userref
* username
* threadref
* text
* markuptype
LOG:
* action -> create alter delete
* object_kind
* object_id
* userref
* ip
* timestamp
da fehlen noch die cache-tabellen, aber ich denke mal das ist recht komplett - es kann jedoch sein das weitere tabellen für die suchfunktion nötig werden