Autor Beitrag
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Di 01.07.08 22:51 
Mh, ich les grad das hier:
mseegernet.de/Delphi...edded/FBEmbedded.htm
hört sich aber ziemlich kompliziert an...
Die dll hab ich, aber muss ich nun nen server auf meinen rechner einrichten?
Wie kann ich nun ne datenbank erstellen mit der dll und interbase?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 01.07.08 23:01 
Am Besten mit einem Admin-Tool z.B. IBExpert (da gibt es eine kostenlose PE)
Der Zugriff auf die embedded Version unterscheidet sich nicht vom Zugriff auf einen Server ( nur Unterschied im Connection-String; keine Angabe eines Servers)

_________________
Markus Kinzler.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 02.07.08 14:53 
Hi,

als kostenlose FireBird Oberfäche ist die entsprechende SQL-Manger Version in der Light Variante ganz brauchbar. Sie kann nicht alles, aber alles was man unbedingt braucht.

Gruß
Klabutermann
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 00:41 
Hi leute,
Danke hab mir SQl manager und IBexpress runtergeladen, trozdem hab ich ein problem.
Ich will eine datenbank erstellen, anhand des von mir am anfang geposteten SQL codes, leider funktioniert es nicht, er bricht praktisch jede zeile mit einer fehlermeldung ab.
Zb bei:

ausblenden Quelltext
1:
ID mediumint(9) unsigned NOT NULL default '0',					


Fehlermeldung:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 15.
(.

ich meine, das is doch ganz normales SQL, ich hab sogar alle sonderzeichen ( ` ) und kommentare entfernt, da es immer ne fehlermeldung gab...
Trozdem klappt es nicht.
Und gibt es keine möglichkeit aus dem programm herraus über SQL eine datenbank zu erstellen? Das war meine eigentliche absicht, meine User sollen immer auf den aktuellsten stand sein, voll automatisch.

Ebil
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 03.07.08 01:22 
user profile iconEbil hat folgendes geschrieben:
Und gibt es keine möglichkeit aus dem programm herraus über SQL eine datenbank zu erstellen? Das war meine eigentliche absicht, meine User sollen immer auf den aktuellsten stand sein, voll automatisch.


Was vollautomatisch ? :shock: Dein Programm soll also hellsehen, wenn ein neues Feld in eine Tabelle kommt und dann womöglich noch automatisch ein neues Edit-Feld an Glaskugel-Position in einem ganz bestimmten Formular einfügen ? Es soll auch wissen, was passiert, sofern OnExit etc. ausgeführt wird ? Und die EXE wird dann auch automatisch gepatcht, oder wie ? :mrgreen:

_________________
Gruß
Hansa
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 01:39 
...

Voll automatisch im sinne von dem was ich programmiert habe.
Mein prog läd den SQL dump runter und updated anhand dessen die datenbank.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 03.07.08 01:53 
Ja, und dann ? Dann ist ein Feld oder gar eine Tabelle neu da und das Programm weiß nichts davon ? Wozu das ? Je ne compris. :mrgreen: Entwerfe besser die DB gleich so, dass sie möglichst lange unverändert bleiben kann. Notfalls ein paar Dummy-Felder einbauen.

_________________
Gruß
Hansa
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 11:58 
Du bist ja lustig o.O
Die DB muss so sein DAS sie ständig geändert werden kann, denn das ist in meinem prog. der große vorteil gegenüber den anderen =o.

//Edit, die tabelle hat immer den selben aufbau, natürlich weiss mein prog dann wozu... Schreib lieber nix wenn du dir nicht im geringsten vorstellen kannst was ich vorhab, oder einfach keine ahnung hast, mir egal =o.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 03.07.08 12:08 
Hi,
user profile iconEbil hat folgendes geschrieben:
ich meine, das is doch ganz normales SQL, ich hab sogar alle sonderzeichen ( ` ) und kommentare entfernt, da es immer ne fehlermeldung gab...

mit dem "ganz normalen SQL" ist das so eine Sache. Du wirst kaum ein Datenbanksystem Finden, das reines ANSI SQL Nutzt. Die sprechen alle ihre eigenen Dialekte, die sich meist nur in kleinen Details unterscheiden. Eine Beschreibung für Interbase/FireBird findest du z.B. hier (PDF). Für dich sicherlich erst einmal interessant ist Seite 108 (DataTypes).

Gruß
Klabautermann
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 12:31 
Ich kenne die sql datentypen, ich programmiere auch in PHP.
Trozdem versteh ich nicht warums nicht klappt :/
Dann werd ich die sql datei wohl einfach wie meine alte txt nutzen müssen :/
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 03.07.08 12:38 
mediumint ist kein SQL-Datentyp. Das Create-Skript unterscheidet sich von DBMS zu DBMS.

_________________
Markus Kinzler.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 03.07.08 13:15 
Hi,

die verlinkte Beschreibung der Datentypen (erster Link) sollte nur Verdeutlichen wo das Problem liegt. Wenn du dir dise noch mal genauer anguckst siehst du z.B., dass der Datentyp, der in MySQL INT heißt in Access als INTEGER Bezeichnet wird und bei Oracle den Namen NUMBER trägt. Es kommt also auf dein verwendetes DBMS an. Die Structured Query Language wird von jeden nur ähnlich aber eben nicht Identisch implementiert, an reines ISO SQL halten dich die wenigsten.

Deshalb führt dich mein Zweiter Link auch zu einem PDF welches das von FireBird Verwendete SQL Beschreibt. Auf Seite 108 wird in diesem Dokument beschrieben, welche Datentypen dieses DBMS unter welchen Namen kennt.

Deine Aussage:
user profile iconEbil hat folgendes geschrieben:
Ich kenne die sql datentypen, ich programmiere auch in PHP.

erhebt einen Absolutheitsanspruch der so nicht zu halten ist. Richtig müsste es heißen:
Zitat:
Ich kenne die sql datentypen eines Dialektes, ich programmiere auch in PHP, dehalb ist es wahrscheinlich der von MySQL.


Bitte nciht falsch verstehen, dass ganze hier ist in keiner Weise böse gemeint. Fakt ist nur, mit jedem neuen Datenbanksystem musst du dich auch wieder neu mit dessen Eigenheiten Vertraut machen.

Gruß
Klabautermann
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 13:23 
Mh ok, das wusste ich nicht, und das ist irgendwie schlecht :/
Gibt es einen converter für sowas? Ansonsten muss ich mit meinen txt's weitermachen, leider, irgendwann werd ich so oder so datenbanken brauchen.

Ebil
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 03.07.08 14:32 
Du musst doch nur einmal durch das Skript gehen und die Typen usw. anpassen. Sollte ruckzuck erledigt sein.

_________________
Markus Kinzler.
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 17:09 
MH... hab ich nun gemacht

ausblenden volle Höhe SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
CREATE TABLE mob_db (
  ID integer(9) unsigned NOT NULL default '0',
  Sprite text NOT NULL,
  kName text NOT NULL,
  iName text NOT NULL,
  LV smallint(6) unsigned NOT NULL default '0',
  HP integer(9) unsigned NOT NULL default '0',
  SP INTEGER(9) unsigned NOT NULL default '0',
  EXP INTEGER(9) unsigned NOT NULL default '0',
  JEXP INTEGER(9) unsigned NOT NULL default '0',
  Range1 smallint(4) unsigned NOT NULL default '0',
  ATK1 smallint(6) unsigned NOT NULL default '0',
  ATK2 smallint(6) unsigned NOT NULL default '0',
  DEF smallint(6) unsigned NOT NULL default '0',
  MDEF smallint(6) unsigned NOT NULL default '0',
  STR smallint(4) unsigned NOT NULL default '0',
  AGI smallint(4) unsigned NOT NULL default '0',
  VIT smallint(4) unsigned NOT NULL default '0',
  INT smallint(4) unsigned NOT NULL default '0',
  DEX smallint(4) unsigned NOT NULL default '0',
  LUK smallint(4) unsigned NOT NULL default '0',
  Range2 smallint(4) unsigned NOT NULL default '0',
  Range3 smallint(4) unsigned NOT NULL default '0',
  Scale smallint(4) unsigned NOT NULL default '0',
  Race smallint(4) unsigned NOT NULL default '0',
  Element smallint(4) unsigned NOT NULL default '0',
  Mode smallint(6) unsigned NOT NULL default '0',
  Speed smallint(6) unsigned NOT NULL default '0',
  aDelay smallint(6) unsigned NOT NULL default '0',
  aMotion smallint(6) unsigned NOT NULL default '0',
  dMotion smallint(6) unsigned NOT NULL default '0',
  MEXP INTEGER(9) unsigned NOT NULL default '0',
  ExpPer smallint(9) unsigned NOT NULL default '0',
  MVP1id smallint(9) unsigned NOT NULL default '0',
  MVP1per smallint(9) unsigned NOT NULL default '0',
  MVP2id smallint(9) unsigned NOT NULL default '0',
  MVP2per smallint(9) unsigned NOT NULL default '0',
  MVP3id smallint(9) unsigned NOT NULL default '0',
  MVP3per smallint(9) unsigned NOT NULL default '0',
  Drop1id smallint(9) unsigned NOT NULL default '0',
  Drop1per smallint(9) unsigned NOT NULL default '0',
  Drop2id smallint(9) unsigned NOT NULL default '0',
  Drop2per smallint(9) unsigned NOT NULL default '0',
  Drop3id smallint(9) unsigned NOT NULL default '0',
  Drop3per smallint(9) unsigned NOT NULL default '0',
  Drop4id smallint(9) unsigned NOT NULL default '0',
  Drop4per smallint(9) unsigned NOT NULL default '0',
  Drop5id smallint(9) unsigned NOT NULL default '0',
  Drop5per smallint(9) unsigned NOT NULL default '0',
  Drop6id smallint(9) unsigned NOT NULL default '0',
  Drop6per smallint(9) unsigned NOT NULL default '0',
  Drop7id smallint(9) unsigned NOT NULL default '0',
  Drop7per smallint(9) unsigned NOT NULL default '0',
  Drop8id smallint(9) unsigned NOT NULL default '0',
  Drop8per smallint(9) unsigned NOT NULL default '0',
  Drop9id smallint(9) unsigned NOT NULL default '0',
  Drop9per smallint(9) unsigned NOT NULL default '0',
  DropCardid smallint(9) unsigned NOT NULL default '0',
  DropCardper smallint(9) unsigned NOT NULL default '0',
  PRIMARY KEY  (ID)
) TYPE=MyISAM;

Leider gibts den fehler schon bei der "(" nach dem Create Table...
Ich erstelle nun mal manuell die tabelle und schau ob der SQL manager einträge machen kann... das würd ja eig reichen.

//Edit: Gibt es keine eigenschaft die text heisst? o.O
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 03.07.08 17:15 
Hallo,
user profile iconEbil hat folgendes geschrieben:
Leider gibts den fehler schon bei der "(" nach dem Create Table...
Ich erstelle nun mal manuell die tabelle und schau ob der SQL manager einträge machen kann... das würd ja eig reichen.

Sicher dass es die Klammer nach dem CREATE TABLE ist? Nicht die nach dem Integer? Denn bei dem ist keine Längenangabe nötig.

Text kannst du entweder als varcar machen oder wenn es beliebig langer Text sein soll als Blob Feld.

Gruß
Klabautermann
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 17:44 
Ok... die tabelle hab ich schonmal erstellt, die kanna uch so bleiben, aber der inhalt der tabelle macht noch probleme.
Kennt der SQL manager kein REPLACE INTO? Was benutzt er anstatt das?

Musste schon ne ganze menge mehr ändern als die datentypen, leider, ist doch ziemlich verschieden das ganze ^^.
Naja solange ich mit delphi progs schreiben kann die den sql dump bearbeiten ist alles in ordnung, hoffe am ende krieg ichs hin...

bei REPLACE INTO gibts den fehler "? Invalid Statement"

Ebil
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 03.07.08 17:47 
Hi,

entweder du nutzt INSERT INTO um einen neuen Datensatz an zu legen oder UPDATE um einen bestehenden zu ändern. Ein REPLACE INTO ist mir um ehrlich zu sein völlig unbekannt.

//Edit: Achso:
MySQL Handbuch hat folgendes geschrieben:
REPLACE is a MySQL extension to the SQL standard. It either inserts, or deletes and inserts. For another MySQL extension to standard SQL — that either inserts or updates — see Section 12.2.4.3, “INSERT ... ON DUPLICATE KEY UPDATE Syntax”.


Gruß
Klabautermann
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Do 03.07.08 18:04 
hab es nun mit Update und insert gemacht, warum beides? Ganz einfach, Ich finde die datensätze nicht, es sind 899 datensätze die in die mob_db eingetragen werden, aber wie kann ich die angucken?
Und was muss ich verwenden, execute SQL script oder execute Query?
Bei der query kommt ein fehler, da ein wert ein hex wert ist und der query das x stört (beispiel: 0x20A5). Muss ich daraus nen string (text, blob, varchar..) machen?

//Edit:
Unglaublich, ich habs doch noch geschafft, auch wenn der SQL dump extrem bearbeitet werden muss, für delphi hab ich die routine fast fertig geschrieben, damit sollte es dann immer klappen.