Español
Foro

SQL, Firebird / Interbase y XProfan

 
- Página 1 -



Dietmar
Horn
¡Hola zusammen,

heute wende Yo mich veces con un SQL-Problema zwecks Bitte en Hilfestellung a el SQL-Experten bajo euch.

Yo arbeite z.Z. con XProfan 11 a una komplexeren Projekt. Es ya bastante weit gediehen. Der bisher einzigste, aber entscheidende Problempunkt es para mich el An- o. Einbindung des RDBS Firebird (Freeware o. Open-Source) o. Interbase (el kostenpflichtige Gegenstück de Borland a Firebird - ähnlich como el Verhältnis zwischen MS Office y Open-Office).

Bisher mußte Yo mich todavía nie groß con SQL beschäftigen, außer Yo me siempre veces el XProfan-Ayuda para SQL-Thema reingezogen y el alles como bastante logisch empfunden hatte. Doch como des öfteren, liegt el Hund determinado sólo en un winzigen Detalle begraben, Yo no saber, oder en un Fehler, el Yo gemacht oder übersehen habe.

Firebird y Interbase kannte Yo a antes 4 Wochen todavía no veces vom Namen her, porque Yo algo como todavía nie benötigt hatte - aber nun es soweit.

ODBC-Treiber y Firebird son installiert.

Zunächst es por lo tanto, una Verbindung herzustellen. Bajo Windows 2000 (en unserem Vereins-Kabinett) klappt el Initialisierung con SQLInit inzwischen.

El Initialisierung liefert bajo W 2000 como gewünscht el Handle zurück:
var i% = SQLINIT(DSN=Firebird;)
messagebox(str$(i%),,4160)

Bajo Windows XP ergibt el sin embargo a ahora siempre 0 (also gescheitert), y en el Gegensatz a W 2000 erscheint como vorher todavía no veces el Diálogo para Eingeben de Username, PWD, usw.

Antes dieses Problema con el Herstellen el Verbindung no gelöst es, brauche Yo nada groß weitermachen.

Literatur encima Firebird Yo inzwischen tonnenweise, doch bevor Yo no schaffe, en allen Windows-Systemen de 2000 aufwärts una zuverlässige Verbindung herzustellen, nützt me alles por desgracia, no allzu viel.

Kann me tal vez alguien weiterhelfen, el se ya veces algo näher así beschäftigt ha?

El nächsten Schritte, also el Neuanlegen uno Datenbank, oder el Editar / Auslesen uno vorhandenen DB y el Weiterverarbeiten el Daten en el real Programa dürfte entonces lediglich todavía uno reine Fleiß- y Logik-Arbeit ser.

Das Ausweichen z.B. en dBase es no posible, porque dBase dbzgl. no en para dieses Projekt erforderlichen Feautures verfügt.

Wer kann evtl. weiterhelfen?

Yo vermute veces, si el Programa irgendwann con Firebird se ejecuta, entonces müßte el Programa auch con Interbase trabajo - oder?

Saludo y Gracias en el voraus
Dietmar

111 kB
Hochgeladen:11.01.2009
Ladeanzahl215
Descargar
33 kB
Hochgeladen:11.01.2009
Ladeanzahl174
Descargar
 
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  
 



 
- Página 3 -



RGH
¡Hola Dietmar,also Yo sería el Archivos incluso no en el Tabla escribir, pero sólo el Dateinamen (ggf. con Pfad) y el Archivos en un speziellen Directorio sichern.Wenn es reine Textdateien es (RTF es auch reiner Texto, sólo con Formatierungsbefehlen), podría uno el Expediente en una String einlesen y esta en un entsprechend großem VARCHAR speichen. Beliebige binäre Archivos podría uno con Encode64 en una String verwandeln y después de el Auslesen con Decode64 otra vez zurück.
Saludo 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
09.02.2009  
 




Dietmar
Horn
Hola Roland,

nein, el va así por desgracia, no, porque el Auftraggeber o. el otro Projektmitlieder el Daten todos möglichts en uno Expediente o. Datenbank haben möchten. Wer el Musik bestellt y bezahlt, el determinado bekanntlich auch, welche Titel gespielt voluntad (y ggf. auch en welcher Lautstärke) - y welche Titel no.

El Hintergründe:

- Einfacherer Datensicherung para el relativ unerfahreneren PC-Anwender.

- Später se el Projekt auch netzwerkfähig ser.

- Registrierte Kunden debería se mittels uno solchen Datenbank de una geschützten Zona des Internets Datenbanken austauschen y aktualisierte Datenbanken vom Hersteller regelmäßig como Updates runterladen puede.

- In una fortgeschritteneren Stadium des Projektes debería artverwandte Branchen-Programas gemeinsam en solche Datenbanken zugreifen y esta nutzen puede. Deshalb muß lo necesariamente Firebird o. Interbase ser y no Access, no dBase o.ä., qué me persönlich viel más bien gewesen wäre.

- In el Datenbank son no sólo Textos enthalten, pero el kann alles mögliche ser: Textos, Hilfedateien, Bilder, Sounds, Videos, Gráficos, ... Zusammen con el Anwenderdaten kann el Datenbank en el Laufe el Jahre beim Kunden entonces salvo -zig oder hunderte MB y en el Extremfall evtl. gar a en el GB-Zona anwachsen.

- Dieses Projekt es keinesfalls el 3978. Aufguß uno primitiven Adressen- oder Programmverwaltung en Principiante-Niveau, pero se möglichst aún en diesem Jahr kommerziell vertrieben voluntad puede.

Über Alternativen brauche Yo dbzgl. con el Auftraggeber no más a diskutieren - anderenfalls bin Yo, el Auftrag los, y yo voluntad como nie otra vez una Fuß en el Tür bekommen.

Bis ahora Yo lediglich rausbekommen, daß lo dafür en SQL una Datentyp nombre BLOB son(?).

Daß lo con uno einzigen Firebird- o. Interbase-Datenbank ir muß, zeigen sí otro professionelle Branchen-Programas en diesem Gebiet, el el así handhaben.

Dieser BLOB-Krempel es el einzigste Stolperstein, el me en diesem Projekt a ahora aún en Wege liegt. Alles otro es reine Fleiß-Arbeit, wo Yo programmiertechnisch con XProfan irgendwie por muß. Falls lo wegen el riesigen Datenmengen irgendwann con XProfan a Geschwindigkeitsproblemen kommen debería, muß Yo el Ganze entonces eben con Profano2Cpp umwandeln y C compilieren y / oder mi rudimentären Ensamblador-Kenntnisse de antes ca. 10 - 15 Jahren otra vez auffrischen y me geschwindigkeitsrelevante Programmteile en Ensamblador programa.

Über otro Alternativen brauche Yo absolut no Kopf a hacer. Lo muß zwingend Interbase o. Firebird ser - y zwar alles en uno einzigen Datenbank. Weil el en el Endeffekt en el Datenbank -zig Tabellen con je a a weit encima hundert Feldern y Tausenden Datensätzen pro Tabla ser puede, brauche Yo como weder con dBase, todavía con uno sonstwie augeklügelten Ordnerstruktur con externo Archivos anzufangen.

Weiß hier wirklich keiner de los SQL-Experten con BLOB, ALTER DATABASE, etc. umzugehen?

Saludo
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:  [...] 
10.02.2009  
 




Thomas
Freier
¡Hola Dietmar,
el con sql y el Blob-Feldern hatten wir doch gerade sólo:  [...]  einschließlich Encode64.
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.02.2009  
 




Dietmar
Horn
¡Hola,

el SQLite-Demo con el BLOB-Feldern de Georg nützt me vorerst casi gar nichts, porque en SQL con FB/IB el Befehle algo anders son. Und gerade para el BLOB-Zeugs findet uno en el Hilfedateien casi gar nichts (jedenfalls nichts para mich Verständliches).

Den ganzen Freitagabend haben Tim H., Mario P. (E.T.), Nico M., Thomas Z. y yo uns el Kopf zermartert y herumprobiert.

El Vorgehensweise entsprach en etwa el de el o.g. SQLite-Demo: de Georg.

Hier veces una Zwischenergebnis de E.T. y Tim H. de gestern Abend:
declarar db&,sql$, Zona#, Expediente$, X1&, Inhalt$,Inhalt2$ , Result&,blub$
cls
Datei$ = C:\Verein\Dho\PROFAN_PROJEKT\Toolbar.bmp
Imprimir (FileSize(Expediente$)/1024/1024),MB
Dim Zona#, FileSize(Expediente$)
Result& = @BlockRead(Expediente$, Zona#, 0, FileSize(Expediente$))
Inhalt$ = encode64(@Char$(Zona#,0,FileSize(Expediente$)))
Disponer Zona#
TraceOn
db& = sqlinit(DSN=KursDB;UID=SYSDBA;PWD=masterkey;DBNAME=C:\Verein\DHOPROFAN_PROJEKT\KURSDB.GDB)

If db& > 0

    Tabla löschen, si ya disponible
    Conjunto(Errorlevel,0)
    SQLExec DROP TABLE BLOBTESTER;,0
    Conjunto(Errorlevel,1)
    Tabla neu erzeugen
    sqlExec CREATE TABLE BLOBTESTER ( Feld1 CHAR(40), Name CHAR(40), groesse NUMERIC(15,0), blobtest BLOB ),0
    sqlExec INSERT INTO BLOBTESTER(Feld1,Name,groesse,blobtest) VALUES(Dietmar,Timä,1000,:Inhalt$),1einfügen
    sqlexec SELECT * FROM BLOBTESTER,0
    ClearList
    sqlexec SELECT * FROM BLOBTESTER,1
    SQLDone
    Imprimir @GetCount(0)+1
    @DeleteString(0,0)
    @DeleteString(0,1)
    @DeleteString(0,2)
    @DeleteString(0,3)
    Imprimir @GetCount(0)+1
    Inhalt2$ = Decode64(@MoveListToStr$(@Chr$(1)))
    imprimir Inhaltsvergleich:
    imprimir    ,Left$(Inhalt$ ,40)
    imprimir    ,Left$(encode64(Inhalt2$),40)
    Dim Zona#, FileSize(Expediente$)
    Char Zona#, 0 = Inhalt2$
    Imprimir SizeOf(Zona#)
    BlockWrite C:\Verein\Dho\PROFAN_PROJEKT\Toolbar_100.bmp, Zona#, 0, SizeOf(Zona#)

Más

    MessageBox(Datenbank podría no gefunden voluntad,,0)

Endif

Disponer Zona#
Waitinput
end

Lo se ejecuta zwar sauber y sin Fehlermeldungen por, doch después de el Auslesen des BLOB-Feldes erhält uno sin embargo sólo Müll (tal vez es el Hineingeschriebene sí evtl. auch ya Müll?).

El Expediente como Encode64-String en una VACHAR a escribir bringt no Punkte, porque esta Textfelder son en 32 KB Größe begrenzt, qué para el a speichernden Archivos keinesfalls ausreicht. Das Ausweichen en SQL con SQLite, Access, dBase, etc. hilft me ebenfalls no - de Kompatibilitätsgründen (para später) con otro Proyectos muß lo zwingend Interbase / Firebird con BLOBs ser.

Roland va en seinem SQL-Kurs desafortunadamente auch sólo siempre en el einfachsten Grundlagen una, el inzwischen incluso Yo ya längst kapiert habe - con keinem Wort sin embargo en BLOB-Felder.

Aber irgendwie muß el BLOB-Zeugs doch posible ser, porque otro Programas uso el en efecto. Oder es etwa XProfans SQLExec-Befehl eingeschränkt, así daß el deswegen no funktioniert?

Weiß hier wirklich keiner una Rat? -> Un belibige Expediente en una BLOB-Feld escribir, auslesen, el ausgelesene y ggf. veränderte Expediente otra vez en el BLOB-Feld reinschreiben y una Expediente en un BLOB-Feld ggf. löschen.

Aus el XProfan-Ayuda a SQLExec:


Jeder Datensatz es una Eintrag en el Liste y kann máximo 32767 Signo enthalten


Daran dürfte unsere bisherige Vorgehensweise gescheitert ser. Meines Wissens después de se el Expediente no direkt en el BLOB-Feld el Tabla gespeichert, weder como Zona, Ebcode44-String, todavía 1 : 1 como Sonstirgendwas (sonst sería en efecto VARCHAR ausreichen), pero irgendwo anders en el Datenbank (wegen auch möglicher Dateigrößen > 32 KB), y el BLOB-Feld se lediglich una Verweis (Adresse?) eingetragen, wo el Expediente en el DB genau para encontrar es. Doch como va el? Sicherlich fehlen uns como todavía unos pocos Parámetro (doch welche?) - y antes allem el genaue Vorgehensweise y Syntax dafür.

Saludo
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:  [...] 
14.02.2009  
 




Thomas
Freier
Hast du deine Vorhaben con ext. Software  [...]  realisieren puede?
 
Gruß Thomas
Windows XP SP2, XProfan X2
14.02.2009  
 




E.T.
Yo denke, el Manko liegt daran, el XProfan para el sqlexec-Aufruf no Bereiche akzeptiert, como dies otro Idiomas hacer. Hab el Nachmittag así verbracht, mich en el sql-Quatsch einzulesen, como bin Yo en el Beispielen darauf gestoßen.
Bin eben esta, el sql-Befehle sin la XProfan-Interne Behandlung (sqlexec etc.) a Verarbeiten, veces sehen, wies al besten gelingt (oder Roland o. alguien más findet una solución).
So como wir el en el Bsp. haben, welches Dietmar Nuevo ha, funzt el überhaupt no. Yo veces el DB-Blob con un Bild befüllt (por externe Anwendung), incluso beim auslesen por sqlexec Select...  kommt nichts brauchbares en XProfan a (wohl, porque Profano el ausgelesene como String betrachtet y esta beim schaufeln el Daten en el Listbox al Null-Byte aufhört).

Tiempo sehen, como se el entwickelt, aber Dietmar ha mich con diesem Käse angesteckt
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
14.02.2009  
 




Klaus
Müller
@Mario: Yo como unos pocos interessante Sachen en el fbclient.dll (en FB enthalten) gefunden. Genaugenommen 8 Características sólo para Blob. Jetzt sólo todavía el Typen el Parámetro (Streams) en Profano en griff bekommen.
@Dietmar: siehe Mail
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
14.02.2009  
 




E.T.
@Thomas: Ungefähr en diesem Weg bin Yo auch, sólo no en dll (tener Yo aber auch ya halb auseinandergenommen), pero por Direktverbindung encima el SQL-Server, qué sí entonces allgemein-gültig ser dürfte.
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
14.02.2009  
 




E.T.
Hm, el Ejemplo (una Stück más oben de Dietmar) funktioniert sí soweit. Im Blob es genau el String, welcher auch transferencia wurde (sieht uno schön por FbMaestro ).
Wo va el Inhalt sólo flöten ??
Beim Auslesen !!
Das Ergebnis des Auslesens por sqlexec SELECT blobtest FROM BLOBTESTER,1  puede nosotros sí ansehen, indem wir en el Listbox (wo Profano el Ergebnis sí hineinschreibt) schauen:
1. Línea: BLOBTEST, also el woher
2. Línea: -------, wohl sólo a opt. Trennung
3. Línea: F239FE, el ersten hexadezimalen !!! 6 Stellen de el ersten Blob
4. Línea: como 3., sólo de el nächsten Blob-Feld usw. una Línea para cada gefundene BlobFeld.
(En Feldern des Typs CHAR() es como el richtige String. Aber esta Felder son a klein para größere Datenmengen. Mit una pequeño Bildchen gehts.)

Como also el zurück-gelesene String falso es, muß zwangsläufig auch una falsches Ergebnis rauskommen.

Der Inhalt en el DB es schonmal correcto !!
Jetzt todavía el auslesen...

Editar: 
Also en Anlehnung a  [...]  sólo todavía el richtigen Befehl de el DLL quetschen...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
15.02.2009  
 




RGH
¡Hola Dietmar,

para Thema BLOBs y Bilder:

Como BLOBs no para SQL-Standard gehören, hay vermutlich no einheitliche SQL-Syntax, en esta a escribir y a lesen. Hier wäre uno en el Documentación a benutzten Datenbank o. el benutzten ODBC-Treibern angewiesen.Tuve zwar bisher ya Einiges con Datenbanken a tun (Oracle, MySQL, ZIM, ...), aber BLOBs haben wir bislang no verwandt, así dass Yo mich danmit todavía no befasst habe. So bastante unbedarft sería Yo vermuten, dass esta ähnlich como Memofelder gehandhabt voluntad, d.h. en el Tabla incluso es sólo una Referenz oder Adresse a real Daten, el en uno eigenen Tabla (en dBase eben .DBT) oder una eigenen Zona el Datenbank posición.

Und el bringt mich en una Lösuugsansatz sin BLOBs:

Tabellen: In el real Tabla Yo en lugar de des Bildes incluso sólo una Feld Bildnummer. Lo son una zweite Tabla (en derselben Datenbank) con el Feldern Bildnummer (Zahl), Bildteil (Zahl), Bilddaten (VarChar con größtmöglicher Longitud). Como una Bild a groß para una VarChar ser kann, se lo nötigenfalls en mehrere aufgeteilt.

Bild en Tabellen escribir:
- In el eigentliche Tabla se el eindeutige Bildnummer geschrieben. Das kann el Nummer des Datensatzes ser oder una otro eindeutige Nummer.
- Das Bild se en una Zona eingelesen un con Encode64() en una String umgewandelt. Dieser kann natürlich encima 32 kB groß ser.
- Dieser String se nun en uno Bucle en Teiler a máximo 32000 Signo aufgeteilt y cada dieser Teile se en el zweite Tabla geschrieben, wobei Bildnummer el erwähnte eindeutige Nummer es y Bildteil de 1 a hochgezählt se. Auf esta Weise landen nun also auch große Bilder bequem en el Datenbank.

Bild de Tabla auslesen:
Mit una SELECT después de el Bildnummer y sortiert después de Bildteil (SORTED BY) voluntad de el zweiten Tabla todos para Bild gehörenden Teile ausgelesen, a una großen String zusammengefügt y Decode64() otra vez en el ursprüngliche Formato zurückgewandelt y inm una Zona geschrieben. Dieser kann nun en el Festplatte geschrieben y adecuado voluntad.

Fertig son el selbstgemachten BLOBs para beliebige Daten!

Einige Hinweise:
* Wenn uno no eh ya el Carta y Lesen des gesamten Datensatzes inklusive Bild en uno Transaktion zusammenfasst, debería uno mindestens el Carta el Teile uno Bildes en uno Transaktion zusammenfassen. Entweder todos Teile oder gar keiner! (Siehe en el Ayuda bajo Einführung, Kapitel 16.4, Absatz Transaktionen)

* Wenn uno el Datensatz con UPDATE verändert y esta el Bild geändert se, debería uno en el zweiten Tabla el alte Bild komplett löschen y neu con INSERT hineinschreiben. Grund: Si el vorherige Bild größer war, bleiben sonst tal vez Teile su drin, cuando el nächsten Lesen entonces Problemas bereiten.

* Sollten mehre Bilder (u otros große Datenbereiche) en el real Tabla vorkommen, sería Yo para cada dieser Objetos una propio Tabla empfehlen.

Desde que en el Moment en el Firma mi Frühstückspause para esta Antwort verwende (anstatt ellos con Butterstange y Capucino de el Kantine a begehen), kann Yo actualmente no Beispielcode liefern, aber tal vez reichen esta Hinweise ya de. Ansonstenm müßte Yo al Wochenende una vez más en el Tasten hauen.

Saludo
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
20.02.2009  
 




RGH
¡Hola Personas,

es Sonntag y yo habe algo Tiempo! Hier una Ejemplo, el el oben Genannte demonstriert! Lo se una Bild en el Datenbank gespeichert y unversehrt otra vez ausgelesen ... y el Ganze sin BLUBB ... pardon: BLOB! ;)

Der Einfachheit halber Yo el beiden Tabellen en el ya más oben angelegten (y hay para Descargar angehängten) KURSDB hinzugefügt. Der Name des Bildes es natürlich ebenso anzupassen, como ggf. el Pfad a KURSDB. Yo habe intenta, el Ejemplo möglichst umfassend a kommentieren.
declarar db&, sql$, bild#, sbild$, datei$, startpos&, teil$, teilnr%, ergebnis$, bildnr%
cls
db& = sqlinit(DSN=KursDB;UID=SYSDBA;PWD=masterkey;DBNAME=D:\Dokumente\FireBird\KURSDB.GDB)

If db& > 0

    =================
    TABELLEN ERZEUGEN
    =================
    Tabellen löschen, si ya disponible
    Conjunto(Errorlevel,0)
    SQLExec DROP TABLE bilderliste,0
    SQLExec DROP TABLE bild,0
    Conjunto(Errorlevel,1)
    Tabla para el Liste el Bilder neu erzeugen
    SQLExec CREATE TABLE bilderliste (name CHAR(40), fotograf CHAR(40), bildnr INTEGER),1
    Tabla para el real Bilder neu erzeugen
    SQLExec CREATE TABLE bild (bildnr INTEGER, teil INTEGER, bilddaten VARCHAR(32000)),1
    =========================
    BILD IN TABELLE SPEICHERN
    =========================
    Como a una Bild mehrere Datensätze gehören, todos Datensätze uno Bildes ineiner Transaktion
    zusammmenfassen
    Zunächst also el automatische Bestätigung einzelner SQL-Befehle ausschalten. El folgenden
    SQL-Befehle voluntad also sólo veces zwischengespeichert sin wirklich en el Datenbank a ir
    sqlexec #AUTOCOMMIT_OFF, 0
    Tabla Bilderliste füllen: Bild 1 hinzufügen
    sql$ = INSERT INTO bilderliste VALUES (Helloween Muffins,Jasmin Hülsmann,1)
    sqlexec sql$,0
    Nun el Bild en Bild# einlesen
    datei$ = HELLOWEEN.JPG
    Dim Bild#, FileSize(datei$)
    BlockRead(datei$, Bild#, 0, FileSize(datei$))
    Das Bild en una String umwandeln
    SBild$ = Encode64(Char$(Bild#,0,FileSize(datei$)))
    Den String SBild$ en Teilen a je 32000 Bytes en el Tabele bild escribir
    startpos& = 1      erstes Signo des Teilstrings en startpos&
    teilnr%   = 1      Nummer des aktuellen Teilstrings

    Mientras que startpos& < Len(SBild$)

        teil$ = mid$(SBild$, startpos&, 32000)                  teil de el String forma
        sql$ = INSERT INTO bild VALUES (1,:teilnr%,:teil$)    y en Tabla einfügen
        sqlexec sql$,1
        startpos& = startpos& + 32000                           Startposition en el String hochzählen
        teilnr%   = teilnr% + 1                                 teilnummerhochzählen

    EndWhile

    Wenn a hierher alles liso gegangen es, konnten todos Datensätze uno Bildes geschrieben
    se. Lo es also el Bestätigung, dass lo nun wirklich en el Datenbank kann:
    sqlexec #COMMIT, 0
    Für el folgenden Befehle benötigen wir el Transaktionskontrolle no mehr, así dass
    jede SQL-Anweisung automáticamente bestätigt voluntad se:
    sqlexec #AUTOCOMMIT_ON, 0
    =========================
    BILD AUS TABELLE AUSLESEN
    =========================
    Ein Bild de el Tabla Bilderliste auswählen
    sql$ = SELECT * FROM bilderliste
    clearlist
    sqlexec sql$,1
    Überschrift y Trennzeile entfernen
    DeleteString(0,0)
    DeleteString(0,0)
    ergebnis$ = listbox$(Bild auswählen y con OK bestätigen:,2)

    if ergebnis$ >

        El Nummer des gewählten Bildes es en el dritten Feld
        bildnr% = Int(Val(Substr$(ergebnis$,3,|)))
        Jetzt todos Teilstrings para deseado Bild de el Tabla bild en richtiger Reihenfolge auswählen
        Wir benötigen no todos Spalten, pero sólo el Bilddaten
        sql$ =SELECT bilddaten FROM bild WHERE bildnr = :bildnr% ORDER BY teil
        clearlist
        sqlexec sql$,1
        Überschrift y Trennzeile entfernen
        DeleteString(0,0)
        DeleteString(0,0)
        Den Gesamtstring de el Teilen otra vez herstellen
        sbild$ =

        WhileLoop 0, %getcount

            sbild$ = sbild$ + trim$(substr$(listboxitem$(&bucle),1,|))

        EndWhile

        Das Bild en seine Byteform zurückverwandeln ...
        sbild$ = Decode64(sbild$)
        ... una Bereichsvariable en passende Größe bringen
        Claro Bild#
        Dim Bild#, Len(sbild$)
        ... y el Bild hineinspeichern
        Char Bild#,0 = sbild$
        Bild en Festplatte speichern
        blockwrite GelesenesBild.jpg, Bild#, 0, SizeOf(Bild#)
        Bild a Kontrolle Mostrar
        DrawSizedPic GelesenesBild.jpg, 0, 0 - 400, 300, 0

    EndIf

    SQLDone

Más

    Imprimir Datenbank podría no geöffnet voluntad!

Endif

waitinput
end

Saludo
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
22.02.2009  
 



Lo son 8 verschiedene BLOB-Subtypen, nachzulesen en  [...] 
Für Binärdaten como Bilder es eigentlich ohnehin el Defaultmodus 0 vorgesehen. Aber tal vez kommt como sí einiges ya beim Guardar en el Quere? Yo proporcionaría BLOB-Subtype 0 explizit antes el Carta y antes el Lesen anfordern, sólo a Sicherheit. Tal vez klappts entonces sí.

Gruss,
Pájaro carpintero
 
22.02.2009  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

20.703 Views

Untitledvor 0 min.
Member 5044459 vor 9 Tagen
Klaus Kohlhepp20.10.2022
Walter24.02.2022
Rschnett20.02.2019
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie