Hallo,
ich habe gleiches Problem nur das ich schon einiges probiert habe.
ich habe die lib beim linker und das verzeichnis angegeben und beim compiler auch den pfad zu den includes.
ich habe es auch schon mit den 64bit apis und den 32bit apis versucht da ich win7 prof 64bit habe
irgendwo habe ich auch gelesen man soll die libmysql.dll in das system32 kopieren, hat alles nicht geholfen
das ganze spielt sich im vs++ 2010 ab, ich hoffe die informationen reichen
was ist denn eine weiter mögliche Fehlerquelle?
hjdt schrieb:
Ok, wie kann ich dann die Datenbanken administrieren? Kannst Du mir einen Vorschlag unterbreiten? Wenn es geht ohne Powershell.
Indem du auf einem x-beliebigen Rechner deines LANs das Management-Studio-Express installierst und die TCP/IP-Dienste beim SQLServer aktivierst (die sind glaub ich standardmäßig nicht aktiv). Dann musste noch ggf. die Firewall anschauen (Port 1433 und 1434 sind hier interessant).
Was die Installationsprobleme angeht, so gab es immer bei WinXP und Windows Server 2003 Probleme, obwohl Microsoft diese BS in den Systemvoraussetzungen nicht ausgeschlossen hat. Da du aber was von 64 Bit geschrieben hast, gehe ich mal davon aus, dass du ein jüngeres BS verwendest. Ab und zu gibts auch Probleme, wenn irgendeine andere Version eines MS-SQL-Servers (z.B. 2005er Express, oder die Version davor) installiert war oder noch ist. Einige Datensicherungstools (z.B. Veritas) werfen das bei der Installation automatisch auf den Server.
Unix-Tom schrieb:
SQL Management Studio hat auf den Server sowieso nichts verloren.
SBS braucht min selbst schon 4GB Speicher und das ist noch zu wenig.
Also ich hab die 2005er auf nem 32Bit-Win2003Server laufen und da gibts keine Probleme.
> d ist days für DateAdd
*patsch*
Ja, klar. Sorry
> im Explorer ist es eine CE Verbindung
Hm.
Sicher dass sonst alles gleich ist? Gleiched DB File, gleiche Engine etc.?
Und kannst du mal die ganze Fehlermeldung posten?
(Ich weiss dass die bei SQL-CE nicht so toll aussagekräftig sind, aber vielleicht ist ja trotzdem noch ein Hinweis darin zu finden)
Ich weis das es fieleicht nicht ganzzum Thema past, aber wie kann ich bei Visual C++ eine externe API einbinden? Bin kein großer C/C++ Kenner, ist auch nicht unbedingt meine lieblings Programmiersprache, und mit Visual Studio kenn ich mich eigentlich garnix aus, aber auf der Arbeit wir halt leider das Visual Studio 2008 benutzt.
Ok, ich habs:
Select s.Bezeichnung From Studiengang s
Where s.Studiengang_ID Not In (Select d.Studiengang_ID From Durchfuehrung d, Jahr j Where j.Jahr_ID=d.Jahr_ID And j.Bezeichnung='2009')
Jetzt raucht mir der Kopf...
Eh nicht.
Ich hätte es aber im spätestens 5 Min. raus wenn ich es bräuchte.
Wohingegen du nach 2-3 Minuten aufzugeben scheinst, und dann lieber das Forum fragst.
Was schnell mal ein paar Wochen dauern kann bis Antwort kommt (wenn überhaupt was kommt).
Tjoha, soviel dazu.
Ja, du siehst da einiges falsch.
Ist mir jetzt aber zu umständlich das alles zu erklären.
Kein Problem.
Gibt es da irgendwelche Bücher, dass man empfehlen kann, um sich in diese Thematik besser einlesen zu können.
Das alles hier zu erklären dürfte wohl den Rahmen des Forums schlichtweg sprengen...
MuMi schrieb:
Hallo Leute,
bin ziemlich neu bei der Sache Datenbank erstellung...
ich wollte zum Probe eine aufgabe machen..
Habe mir TOAD heruntergeladen
in ORACLE alle einstelungen usw gemacht
Tabellen hab ich auch erstellt mit primary schlüsseln, foreign schlüsseln..
ich kann aber irgendwie kein trigger erstellen
hier ist mein trigger code
CREATE OR REPLACE TRIGGER HR.TRIGGER_LAGER
BEFORE INSERT OR UPDATE
ON HR.GELIEFERT
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
tmpVar NUMBER;
BEGIN
tmpVar := 0;
tmpVar := lieferungpruefen(:NEW.artikelnr);
tmpVar := tmpVar - :NEW.anzhal;
IF tmpVar < 0 THEN
RAISE_APPLICATION_ERROR(-7937, 'Nicht genug auf Lager!');
ELSE
tmpVar := leferungumbuchen(:NEW.artikelnr, :NEW.anzhal);
END IF;
END;
fehler code ist es das hier:
**5/13 PLS-00201: Bezeichner 'LIEFERUNGPRUEFEN' muss deklariert werden
5/3 PL/SQL: Statement ignored
11/16 PLS-00201: Bezeichner 'LEFERUNGUMBUCHEN' muss deklariert werden
11/6 PL/SQL: Statement ignored
**
wie kann ich sie deklarieren
ohne das konstrukt genauer anzuschauen:
-gibst du dir alle fehler aus in php? oder hast du sie abgestellt?
http://php.net/manual/en/function.error-reporting.php
-was heißt: gibt 0 zurück? dann wurde kein datensatz gefunden.
-ist der zugriff auf die entsprechende datenbank korrekt?
so sind es zuwenig infos
pumuckl schrieb:
Ja, aber es gibt Dinge, die den index nutzlos machen, weil die DB dann trotz Index einen Full Table Scan machen muss. Exists gehört dazu.
Fakt ist, das solche Aussagen immer auf spezifische Datenbanken beschränkt sind. Wir hatten einige Fälle (Oracle) wo EXISTS sogar schneller als die Alternativen waren. Das hängt natürlich auch an mehreren Faktoren.
hustbaer schrieb:
Und es kommt auch immer drauf an was man erreichen will. Will man den Throughput des Systems maximieren, oder will man das System dahingehend optimieren, dass es keine einzelne Abfrage gibt, die unverhältnismässig lange dauert.
Erstes Hauptziel ist es, die Last auf der Datenbank zu reduzieren und Kollisionen mit anderen Anwendungen zu minimieren*, zweitens soll "mein" Anweisungblock insgesamt möglichst schnell durchlaufen werden (und wenn es möglich ist, in O(1)).
* Ich bin nicht der einzige, der auf die Datenbank zugreift, allerdings einer von denen, die auch ohne Nutzer-Eingriff ständig Last erzeugen.
Danke nun hab ich die lib. die def Datei war bei der dll schon dabei, hat glaub ich einiges an arbeit gespart.
Leider kommen immer noch Linker fehler, obwohl ich die lib in den Projekt eingebunden hab.
Kann sich jemand vorstellen warum?
ich habe nur folgendem beispiel code eingefügt:
//Als erstes legen wir einen sqlite3-Zeiger an
sqlite3* Database;
// und instantiieren ein Objekt von string auf dem Stack
string Path;
// Danach fragen wir den Benutzer nach dem Pfad zur Datenbankdatei
// Nun können wir die Datenbank öffnen!
if(sqlite3_open("\\Datenbank\\Daten.db", &Database) != SQLITE_OK)
{
// Es ist ein Fehler aufgetreten! sqlite3_errmsg(Database)
MessageBox::Show("Fehler beim Öffnen der Datenbank","Fehler beim Öffnen", MessageBoxButtons::OK,MessageBoxIcon::Error);
}
// Jetzt können wir die Datenbank wieder schließen
sqlite3_close(Database);
Habe nur anstat dem cout, für fehler eine MessageBox gemacht, da es eine Windows Forms Anwendung ist.
//Edit: Hat sich erledigt, funktionierte nach Neustart... Danke
Hallo und Guten Abend zusammen,
ich habe mir für meine Anwendung die ich mit dem Borland C++Builder 2007 schreibe
mittels ADOX Catalog->Create eine Access-Datenbankdatei erzeugt.
Anschließend habe ich über eine ADO-Connection mittels 'CREATE TABLE' meine benötigten Tabellen erzeugt.
In der Datenbank habe ich eine Tabelle 'Version' welche nur eine Spalte enthält in welche bei der Erstellung der Datenbank eine Versionsnummer geschrieben wird.
Diese Versionsnummer prüfe ich beim Programmstart um somit sicherzustellen das die korrekte Datenbankdatei vorhanden ist.
Diese Tabelle 'Version' möchte ich aber gerne schreibschützen. Ich habe es schon mit
GRANT SELECT ON TABLE Version
versucht, leider ohne Erfolg. Auch das Anlegen eines Users mit
CREATE USER tpo tpsw 12345
und anschließendem
GRANT SELECT ON TABLE Version TO tpo
haben leider nicht zum Erfolg geführt.
Würde mich über Tips freuen wie ich nur für diese eine Tabelle einen Schreibschutz erreichen kann.
Grüße Netzschleicher
@Mangostane:
Du brauchst auf jeden Fall die Doku des Herstellers, bzw. die entsprechende Info von dessen Hotline/Support.
Oder zumindest irgendwelche Beispiel-Config-Files.
Ohne zusätzliche Infos wirst du, bzw. werden auch wir nicht erraten können was man da reinschreiben muss.