| |
|
|
- page 1 - |
|
Dietmar Horn | allô zusammen,
aujourd'hui wende je mich la fois avec einem SQL-Problem zwecks s'il te plaît um Hilfestellung à qui SQL-Experten sous euch.
je travaille z.Z. avec XProfan 11 à einem komplexeren projet. c'est déjà droite large gediehen. qui bisher einzigste, mais entscheidende Problempunkt ist pour mich qui à- bzw. Einbindung des RDBS Firebird (Freeware bzw. Open-Source) bzw. Interbase (cela kostenpflichtige Gegenstück de Borland trop Firebird - ähnlich comment cela Relations entre MS Office et Open-Office).
Bisher mußte je mich encore nie grand avec SQL beschäftigen, sauf qui je mir toujours fois le XProfan-Aider zum SQL-Thema reingezogen et cela alles comme droite logisch empfunden hatte. Doch comment des öfteren, liegt qui le chien bestimmt seulement dans einem winzigen Detail begraben, quoi je pas kenne, ou bien dans einem faute, den je gemacht ou bien übersehen habe.
Firebird et Interbase kannte je jusqu'à avant 4 Wochen encore pas la fois vom Namen her, weil je quelque chose comme encore nie nécessaire hatte - mais eh bien ist es soweit.
ODBC-Treiber et Firebird sommes installiert.
Zunächst ca va tout autor, une liaison herzustellen. sous Windows 2000 (dans unserem Vereins-cabinet) klappt qui initialisation avec SQLInit inzwischen.
qui initialisation liefert sous W 2000 comment gewünscht cela Handle zurück:
sous Windows XP ergibt cela cependant jusqu'à maintenant toujours 0 (alors gescheitert), et im opposition trop W 2000 erscheint là auparavant encore pas la fois qui Dialog zum Eingeben de Username, PWD, usw.
Bevor cet Problem avec dem Herstellen qui liaison pas gelöst ist, brauche je gar pas grand weitermachen.
Literatur sur Firebird habe je inzwischen tonnenweise, doch bevor je es pas schaffe, sur allen Windows-Systemen ab 2000 aufwärts une zuverlässige liaison herzustellen, nützt mir cela alles malheureusement pas allzu viel.
peux mir peut-être quelqu'un weiterhelfen, qui sich déjà la fois quelque chose näher avec cela beschäftigt hat?
qui prochain Schritte, alors cela Neuanlegen einer banque de données, ou bien cela Travailler / Lecture einer vorhandenen DB et cela Weiterverarbeiten qui données im réel Programme pourrait ensuite lediglich encore einer reine Fleiß- et Logik-travail son.
cela Ausweichen z.B. sur dBase ist pas possible, weil dBase dbzgl. pas sur qui pour cet projet erforderlichen Feautures verfügt.
qui peux peut-être. weiterhelfen?
je vermute la fois, si cela Programme irgendwann avec Firebird fonctionne, ensuite devrait cela Programme aussi avec Interbase marcher - ou bien?
Salut et merci d'avance Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 11.01.2009 ▲ |
|
|
|
| |
|
- page 6 - |
|
|
RGH | Uwe Pascal Niemeier
@ Roland: quand wird es une entsprechenden Patch donner? Es hat sich oui doch einiges angesammelt, quoi korrigiert volonté devrait...
SeeYou Pascal
Huch, quoi car alles? Mir fällt là encore qui seulement pour sur einem l'an entdeckte Bug chez REPEAT ... UNTIL un. mais eswird sûrement um Pâques encore un Bugfix (11.1a) ou bien Update (11.2) donner. peut-être habe je oui encore une concept zum BLOB-écrivons ...
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.03.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Roland!
Roland
Huch, quoi car alles?
J'ai pensé là à qui l'affaire avec StringW , qui Unregelmäßigkeit chez Pointern comme paramètre ou bien qui Probleme avec Memory-DCs chez Startpaint ...(alors im Prinzip alles déjà erledigt) Avec l' Repeat...Until c'est moi eigentlich égal et qui BLOBs volonté oui par qui 64KB-frontière des Treibers versaut
SeeYou Pascal (qui pour un geplantes projet weder sur XProfan 11 encore sur ocx verzichten veux) |
|
|
| |
|
|
|
| Uwe Pascal Niemeier
(qui ... weder sur XProfan 11 encore sur ocx verzichten veux)
< -- des auch gern hätt |
|
|
| |
|
|
|
Dietmar Horn |
et qui BLOBs volonté oui par qui 64KB-frontière des Treibers versaut
cela peux so pas stimmen, car autre Konkurrenzprodukte trop meinem bzw. unserem aktuellen projet travailler avec echten Blobs dans Interbase et Firebird (cependant dans C et Delphi programmiert). seulement avec XProfan scheint cela jusqu'à maintenant malheureusement plan encore pas trop marcher.
aussi qui EMS-SQL-Manager peux echte Blob-Felder anlegen - alors doit cela oui irgendwie aller. avec irgendeiner 32- ou bien 64-KB-frontière irgendeines ODBC-Treibers pourrait cela rien trop 1faire avons, car theoretisch peut dans solchen Blob-Feldern beliebige Binär-données notfalls avec des centaines GB Taille gespeichert volonté. Bien sûr pas direct im Blob-champ, car là wird probablement seulement un Verweis puis stehen, wohin oui c'est ca dans qui DB qui zugehörigen données abgespeichert bzw. pour trouver sommes. Doch um cet Verwalterei kümmert sich qui IB-/FB-DB interne oui offensichtlich selber.
si Roland le reste vernünftig hinbekommt, ensuite wäre dem Erstellen de riesigen Datenbankanwendungen jusqu'à dans den GB- bzw. TB-Bereich avec XProfan wahrscheinlich absolu aucun Grenzen plus gesetzt - zumal Firebird comme relationales SQL-Datenbanksystem aussi pour gewerbliche Anwendungen kostenlos zur Disposition steht et justement im kommerziellen Bereich inzwischen bereits très large verbreitet ist.
Salut Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 01.03.2009 ▲ |
|
|
|
|
RGH | Uwe Pascal Niemeier
J'ai pensé là à qui l'affaire avec StringW , qui Unregelmäßigkeit chez Pointern comme paramètre ou bien qui Probleme avec Memory-DCs chez Startpaint ...(alors im Prinzip alles déjà erledigt)
eh, cet Kleinigkeiten habe je déjà erledigt et hatte vous wohl gedanklich bereits abgehakt.
quoi ODBC et BLOB betrifft, so experimentiere je et avec ca. qui dessus de mir skizzierte Weg serait qui 64k-frontière pour SQL-Statements tourner autour de. mais en supplément brauche je et avec ca Zeit.
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.03.2009 ▲ |
|
|
|
|
| Ähm.. fällt cela avec dem Verschachteln de GOSUB´s aussi sous Kleinigkeiten? cela serait mir nämlich qui Umschreiberei de ca. 17 älteren Profanprogrammen ersparen. s'il te plaît pas oublier qc! Salut |
|
|
| |
|
|
|
RGH | Peter Specht
Ähm.. fällt cela avec dem Verschachteln de GOSUB´s aussi sous Kleinigkeiten? cela serait mir nämlich qui Umschreiberei de ca. 17 älteren Profanprogrammen ersparen. s'il te plaît pas oublier qc! Salut
oui, c'est aussi déjà erledigt (chez mir zumindest). (et cela, obohl es GOSUB oui officiel déjà longtemps pas plus gibt et seulement encore une undokumentierte Geschichte ist, qui aus Kompatibilitätsgründen plus existiert.)
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.03.2009 ▲ |
|
|
|
|
| Superst! Basic-Ähnlichkeit gerettet. Vielen Dank d'avance! Salut |
|
|
| |
|
|
|
RGH | Dietmar Horn
Dietmar Hornet qui BLOBs volonté oui par qui 64KB-frontière des Treibers versaut cela peux so pas stimmen, car autre Konkurrenzprodukte trop meinem bzw. unserem aktuellen projet travailler avec echten Blobs dans Interbase et Firebird (cependant dans C et Delphi programmiert). seulement avec XProfan scheint cela jusqu'à maintenant malheureusement plan encore pas trop marcher.
cet anderen Programme kommunizieren sous Umständen (avec ziemlicher Sicherheit) pas per ODBC avec Firebird/Interbase, mais direct. voilà naturellement entier autre Sachen possible. XProfan kommuniziert seulement sur ODBC avec allen Datenbanken, qui une solche Schnittstelle bieten. et aussi ici bietet XProfan (zumindest pas sans API) pas alle Opportunités, mais seulement qui communication sur SQL per SQLExec (dem qui ODBC-API SQLExelDirect entspricht). et pour SQL-Statementsgibt es chez Firebird/Interbase plan qui Begrenzung sur 64 kB. Pascal hat oui déjà gezeigt, comment on qui ODBC-API nutzen peux et je hatte plus dessus oui aich déjà qui APIs erwähnt, avec denen es probablement possible ist, BLOBs sous Umgehung qui 64k-frontière trop befüllen. si je Zeit finde, werde je mir cela la fois anschauen.
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.03.2009 ▲ |
|
|
|
|
RGH | Uwe Pascal Niemeier
Hi gens! Mutmaßung: Entweder ist qui db-Unterstützungvon Delphi völlig anders gestrickt comme qui de Profan
Korekt! Delphi peux sur bestimmte Komponenten direct avec Interbase kommunizieren et allez dabei pas sur ODBC.
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.03.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Dietmar!
cela peux so pas stimmen, car autre Konkurrenzprodukte trop meinem bzw. unserem aktuellen projet travailler avec echten Blobs dans Interbase et Firebird (cependant dans C et Delphi programmiert). seulement avec XProfan scheint cela jusqu'à maintenant malheureusement plan encore pas trop marcher.
je erinnere nochmal à den vorgeschlagenen Workaround, chez dem qui données dans mehreren Häppchen dans même chose Datenfeld geschrieben volonté. cela Ergebnis ist définitif un echter BLOB!
avec irgendeiner 32- ou bien 64-KB-frontière irgendeines ODBC-Treibers pourrait cela rien trop 1faire avons,...
Roland erwähnte oui, cela ca sogar dans irgendeiner Doku erwähnt wird. cela qui gens de FireBird ses Treiber comme Stiefkinder regarder ist pas Profans Schuld
aussi qui EMS-SQL-Manager peux echte Blob-Felder anlegen
là pourrait on oui la fois regarder, comment il pouvoir... mais là Roland oui sowieso déjà avec cela zugange ist, lohnt es sich wohl pas, weil cela Ergebnis déjà avec qui prochain Profan-Version obsolete wäre.
SeeYou Pascal |
|
|
| |
|
|
|
RGH | et und dir doch: Echte Binäre BLOBs avec XProfan
Bevor je mon obiges Beispielprogramm sur echte BLOBs umschreibe, hierzunächst qui Solution per ODBC-API: KompilierenMarqueSéparationwindow 50,50-500,500
DEF &SQL_PARAM_INPUT 1
DEF &SQL_SUCCESS 0
DEF &SQL_HANDLE_STMT 3
DEF &SQL_C_DEFAULT 99
DEF &SQL_CHAR 1
DEF &SQL_NUMERIC 2
DEF &SQL_DECIMAL 3
DEF &SQL_INTEGER 4
DEF &SQL_SMALLINT 5
DEF &SQL_FLOAT 6
DEF &SQL_REAL 7
DEF &SQL_DOUBLE 8
DEF &SQL_VARCHAR 12
DEF &SQL_DATE 9
DEF &SQL_TIME 10
DEF &SQL_TIMESTAMP 11
DEF &SQL_LONGVARCHAR -1
DEF &SQL_BINARY -2
DEF &SQL_VARBINARY -3
DEF &SQL_LONGVARBINARY -4
DEF &SQL_BIGINT -5
DEF &SQL_TINYINT -6
DEF &SQL_BIT -7
def SQLAllocHandle(3) !odbc32,SQLAllocHandle
def SQLFreeHandle(2) !odbc32,SQLFreeHandle
def SQLPrepare(3) !odbc32,SQLPrepare
def SQLBindParameter(10) !odbc32,SQLBindParameter
def SQLExecute(1) !odbc32,SQLExecute
proc SQLPutBlob
parameters Exec$, DATA#
declare stmt&, size&, ret%, error$
SQLAllocHandle(&SQL_HANDLE_STMT, &SQLDBC, addr(stmt&))
size& = SizeOf(Data#)
Ret% = SQLBindParameter(stmt&, 1, &SQL_PARAM_INPUT, &SQL_BINARY, &SQL_LONGVARBINARY,
SizeOf(Data#), 0, Data#, 0, Addr(size&))
If LoWord(Ret%) = &SQL_SUCCESS
Ret% = SQLPrepare(stmt&,addr(Exec$),len(Exec$))
If LoWord(Ret%) = &SQL_SUCCESS
Ret% = SQLExecute(stmt&)
Case LoWord(Ret%) <> &SQL_SUCCESS : Error$ = SQLExecute
Else
error$ = SQLPrepare
EndIf
Else
error$ = SQLBindParameter
EndIf
Case Len(error$) : MessageBox(error$ + fehlgeschlagen!, ODBC-Fehler, 16)
SQLFreeHandle(&SQL_HANDLE_STMT, stmt&)
endproc
Declare Bild#
CLS
Var datei$ = HELLOWEEN.JPG
Dim Bild#, FileSize(datei$)
BlockRead(datei$, Bild#, 0, FileSize(datei$))
var db& = sqlinit(DSN=KursDB;UID=SYSDBA;PWD=masterkey;DBNAME=D:\Dokumente\FireBird\KURSDB.GDB)
SQLPutBlob(INSERT INTO TCS (Feld1) VALUES (?), Bild#)
SQLDone
Print Blob geschrieben!
waitin >
end
cela Ergebnis peux on avec dem SQL-Manager begutachten et z.B. den geschriebenen BLOB comme Dossier Sauver et cet ensuite avec einem Bildbearbeitungsprogramm betrachten. BTW: Helloween.jpg ist ca. 1,5 MB grand.
Salut Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 02.03.2009 ▲ |
|
|
|