Español
Foro

Hecho: Firebird Embedded

 
- Página 1 -



Dietmar
Horn
¡Hola zusammen,

con mi XProfan-Firebird-SQL-Projekt klappt lo soweit bastante bien.

Nun hay aber una Problema, welches Yo möglichst a vorgestern con XProfan lösen müßte, si el con XProfan aktuell überhaupt posible es.

In el ersten offiziellen Beta para ausgesuchte Tester se el Programa nun necesariamente como Embedded-Variante laufen, y no como No-Embedded.

Mit No-Embedded encima ODBC-Schnittstelle mittels el normalen FB-SQL-Befehle klappt bisher alles weitestgehend tadellos.

Doch como kann Yo el Embedded-Variante inicializar, en danach con denselben SQL-Routinen en el Programa como gewohnt weiterarbeiten a puede? Später se el Anwender entonces zwischen beiden Varianten selber el Auswahl treffen.

Für el SQL-Experten bajo euch Yo ya veces alles en una ZIP-Archiv gepackt - also Firbird embedded (no Installation erforderlich) y algunos zusätzliche Hilfedateien (außer el, welche en el Unterordner doc sowieso ya disponible son). El beigelegte Patienten.fdb podría para Testen dienen.

Selber Yo el pocos laut Hilfedatei(en) benötigten Archivos en el Projektverzeichnis kopiert y el fbembed.dll en fbclient.dll umbenannt. Laut Hilfedatei(en) debería el ausreichen. Como Yo el a ahora verstehe, braucht uno doch el Rest de el Firebird-Ordner de el ZIP doch nada necesariamente, oder?

Doch con
KompilierenMarcaSeparación
bekomme Yo simplemente no Verbindung hin!

Wenn Yo el en el nächsten Tagen (notfalls eben sólo veces por Workarount) no irgendwie con XProfan hinbekomme, entonces kann Yo el Arbeit de más Monaten en el Principio en el Tonne kloppen ...

Roland, hast Usted tal vez como Datenbank-Profi una solución a dieses Problema, oder wer de los otro DB-Profis sabe se todavía así de?

Saludo y Gracias en el voraus!

Dietmar

7.490 kB
Kurzbeschreibung: Firebird embedded
Hochgeladen:17.04.2009
Ladeanzahl76
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:  [...] 
17.04.2009  
 



 
- Página 1 -



RGH
¡Hola,

hier una erster Teil a Verwendung de direktem Zugriff en Firebird mittels XProfan. Das Ejemplo debería sowohl para el Client-Versión (como heißt el DLL allerdings anders: fbclient.dll, en Interbase natürlich auch) como auch como hier para el Embedded-Versión trabajo.

ACHTUNG: Das Ejemplo funktioniert! Wenn uno con Sí antwortet se el Datenbank tatsächlich gelöscht y beim Intento, el no mehr vorhandene Datenbank a schließen, hay el entsprechene Firebird-Fehlermeldung. ALso vorher Por favor, una Sicherheitskopie el Datenbankdatei (en el Ejemplo Patienten.fdb) redactar.

Was geschieht en el Programa?
- Mit ImportDLL voluntad el API-Características el DLL imortiert
- Mit isc_expand_dpb() se el Verbindungsstring producido. In unserem Fall brauchen wir sólo Username y Paßwort. El entsprechenden Konstanten kommen de el ibase.h
- Mit isc_attach_database() se el Verbindung a Datenbank producido. Wenn el erste Eintrag des Status-Arrays una 1 es, es el zweite Eintrag en el Falle ungleich 0 el Interbase-Fehlernummer. In diesem Fall es con isc_interprete() el texto el entsprechenden Fehlermeldung ermittelt.
- con isc_drop_database() puede wir nun el Datenbank löschen. Das klappt natürlich sólo korrektem Usernamen y Paßwort. Ansonsten hay una Fehlermeldung. (Das Löschen el Datenbank Yo como praktischen Test para el erfolgreiche Verbindung gewählt, porque una SELECT una wenig komplexer wäre ... ;) ) Mit algo Fleiß y Erfahrung puede ser natürlich con el übrigen API-Características auch SQL-Statements absetzen, BLOBs escribir y lesen, etc. El API erinnert una wenig a el ODBC-API ... desafortunadamente sólo una wenig.
- Mit isc_detach_database() se el Verbindung a Datenbank final ... vorrausgesetzt ellos wurde en el vorigen Schritt no gelöscht.

Das Ejemplo beweist, qué aber eh klar war: Wenn con otro Programmiersprachen el direkte Zugriff en Firebird va, es auch con XProfan:
KompilierenMarcaSeparación
FireBird Embedded Demo
----------------------
©2009 Roland G. Hülsmann
Definitionen aus ibase.h
def &isc_dpb_user_name 28
def &isc_dpb_password 29
declare msg#
declare status_vector&[20]
declare pdpb&, pstatus&
var hdll& = ImportDLL(fbembed.dll, fb_)
dim msg#, 512
var dpb_length& = 0   Länge des Verbindungsstrings
var db1& = 0          Databasehandle
var user$ = SYSDBA
var pass$ = masterkey
var name$ = Patienten.fdb
cls
Verbindungsstring erstellen
fb_isc_expand_dpb(addr(pdpb&), addr(dpb_length&),
&isc_dpb_user_name, addr(user$),
&isc_dpb_password, addr(pass$),
0)

whileloop 0, dpb_length& - 1

    print hex$(byte(pdpb&,&loop));,;

endwhile

Verbindung zur Datenbank herstellen und auf Fehler prüfen
fb_isc_attach_database(addr(status_vector&[0]), len(name$), addr(name$), addr(db1&), dpb_length&, pdpb&)

if ((status_vector&[0] = 1) and status_vector&[1])

    pstatus& = addr(status_vector&[0])
    fb_isc_interprete(msg#, addr(pstatus&))
    messagebox(string$(msg#, 0), Firebird-Fehler, 16)
    end 1

endif

Hier könnte nun der Zugriff auf die Datenbank stattfinden ...
Im Beispiel wird die Datenbank gelöscht! (Vor dem Ausprobieren bitte Sicherheitskopie anlegen!)

if messageBox(Wollen Sie die Datenbank wirklich löschen?, Frage:, 36) = 6

    fb_isc_drop_database(addr(status_vector&[0]), addr(db1&))

    if ((status_vector&[0] = 1) and status_vector&[1])

        pstatus& = addr(status_vector&[0])
        fb_isc_interprete(msg#, addr(pstatus&))
        messagebox(string$(msg#, 0), Firebird-Fehler, 16)
        end 2

    endif

endif

Verbindung mit der Datenbank lösen und auf Fehler prüfen
fb_isc_detach_database(addr(status_vector&[0]), addr(db1&))

if ((status_vector&[0] = 1) and status_vector&[1])

    pstatus& = addr(status_vector&[0])
    fb_isc_interprete(msg#, addr(pstatus&))
    messagebox(string$(msg#, 0), Firebird-Fehler, 16)
    end 3

endif class=s4 href='./../../funktionsreferenzen/XProfan/end/'>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
20.04.2009  
 




Dietmar
Horn
Gracias!

Das SQLInit y SQLDone hätten wir entonces sí ya veces.

Wenn Yo entonces irgendwie el Äquivalent a SQLExec por API con el bastante normalen SQL-Übergabestrings (SELECT, INTO, UPDATE, etc.) hätte, entonces wäre el Kuh sí sólo veces fast vom Eis.

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




RGH
Dietmar Horn, Beitrag=51895, Zeitpunkt=20.04.2009
Gracias!

Das SQLInit y SQLDone hätten wir entonces sí ya veces.

Wenn Yo entonces irgendwie el Äquivalent a SQLExec por API con el bastante normalen SQL-Übergabestrings (SELECT, INTO, UPDATE, etc.) hätte, entonces wäre el Kuh sí sólo veces fast vom Eis.

Saludo
Dietmar


Nun porque! Das meiste va ya. Aus Gründen, el me todavía no bekannt son, läßt se kein Feld con NUMERIC(10,2) definieren. NUMERIC(8,2) hingegen funktioniert. Und Felder, el con NUMERIC(10,2) definiert son, como z.B. SALARY en EMPLOYEES erzeugen beim Zugriff lediglich una Fehlermeldung. Und BLOBs hay auch todavía no, dürften aber kein großes Problema ser.
KompilierenMarcaSeparación
FireBird Embedded Demo
----------------------
©2009 Roland G. Hülsmann
Definitionen aus ibase.h
def &isc_dpb_user_name 28
def &isc_dpb_password  29
def &SQLDA_VERSION1     1
def &DSQL_close         1
def &DSQL_drop          2
def &SQL_TEXT         452
def &SQL_VARYING      448
def &SQL_SHORT        500
def &SQL_LONG         496
def &SQL_FLOAT        482
def &SQL_DOUBLE       480
def &SQL_D_FLOAT      530
def &SQL_TIMESTAMP    510
def &SQL_BLOB         520
def &SQL_ARRAY        540
def &SQL_QUAD         550
def &SQL_TYPE_TIME		560
def &SQL_TYPE_DATE    570
def &SQL_INT64			  580
Weitere Definitionen
def &varchar  $1C0  448 SQL_VARYING NOT NULL
def &varchar2 $1C1  449             NULL ALLOWED
def &char     $1C4  452 SQL_TEXT    NOT NULL
def &char2    $1C5  453             NULL ALLOWED
def &float    $1E2  482 SQL_FLOAT   NOT NULL
def &float2   $1E3                  NULL ALLOWED
def &long     $1F0  496 SQL_LONG    NOT NULL
def &long2    $1F1  497             NULL ALLOWED
def &short    $1F4  500 SQL_SHORT   NOT NULL
def &short2   $1F5  501             NULL ALLOWED
def &date     $1FE  510 SQL_TIMESTAMP N NULL
def &date2    $1FF  511             NULL ALLOWED
def &blob     $208  520 SQL_BLOB    NOT NULL
def &blob2    $209  521             NULL ALLOWED
Strukturen aus ibase.h
struct XSQLVAR =
sqltype%,             00:datatype of field
sqlscale%,            02:scale factor
sqlsubtype%,	        04:datatype subtype - BLOBs & Text types only
sqllen%,			        06:length of data area
sqldata&,             08:address of data
sqlind&,              12:address of indicator variable (short)
sqlname_length%,      16:length of sqlname field
sqlname$(31),         18:name of field, name length + space for NULL
relname_length%,      50:length of relation name
relname$(31),	        52:fields relation name + space for NULL
ownname_length%,      84:length of owner name
ownname$(31),         86:relations owner name + space for  NULL
aliasname_length%,   118:length of alias name
aliasname$(31)        120:relations alias name + space for NULL -> 151 = 152 Bytes
struct XSQLDA =
version%,             00:version of this XSQLDA
sqldaid#(14),         02:for future use
sqln%,                16:number of fields allocated
sqld%                 18:actual number of fields
Weitere Strukturen
struct TIMEDATE =
sek&,                0 .. 59
min&,                0 .. 59
std&,                0 .. 23
tag&,                1 .. 31
mon&,                0 .. 11 !
jahr&,               Jahr - 1900 (109 = 2009)
wtag&,               Wochentag 0 .. 6, 0 = Sonntag
jtag&,               Tag im Jahr 0 .. 365
isdst&                Ungleich null bei US-Sommerzeitkonvertierung
Funktionen aus DLL importieren
var hdll& = ImportDLL(fbembed.dll, fb_)

proc fbError

    parameters sv&[]
    declare msg#
    dim msg#, 512
    var pstatus& = addr(sv&[0])
    var sqlcode& = fb_isc_sqlcode(addr(sv&[0]))

    if sqlcode& < 0  SQL-Fehlergefunden

        fb_isc_sql_interprete(sqlcode&, msg#, 512)

    else

        fb_isc_interprete(msg#, addr(pstatus&))

    endif

    if get(errorlevel) > 0

        messagebox(string$(msg#, 0), Firebird Fehler:, 16)
        end 1

    elseif get(errorlevel) = 0

        messagebox(string$(msg#, 0), Firebird Warnung:, 16)

    endif

endproc

proc fbInit

    parameters user$, pass$, name$
    declare status_vector&[20]
    var dpb_length& = 0   Länge des Verbindungsstrings
    var db1& = 0          Databasehandle
    var pdpb& = 0         Zeiger auf Verbindungsstring
    Verbindungsstring erstellen
    fb_isc_expand_dpb(addr(pdpb&), addr(dpb_length&),
    &isc_dpb_user_name, addr(user$),
    &isc_dpb_password, addr(pass$),
    0)
    Verbindung zur Datenbank herstellen und auf Fehler prüfen
    fb_isc_attach_database(addr(status_vector&[0]), len(name$), addr(name$), addr(db1&), dpb_length&, pdpb&)

    if ((status_vector&[0] = 1) and status_vector&[1])

        fbError(status_vector&[])

    endif

    return db1&

endproc

proc fbDone

    parameters db1&
    declare status_vector&[20]
    Verbindung mit der Datenbank lösen und auf Fehler prüfen
    fb_isc_detach_database(addr(status_vector&[0]), addr(db1&))

    if ((status_vector&[0] = 1) and status_vector&[1])

        fbError(status_vector&[])

    endif

endproc

proc fbDrop

    parameters db1&
    declare status_vector&[20]
    fb_isc_drop_database(addr(status_vector&[0]), addr(db1&))

    if ((status_vector&[0] = 1) and status_vector&[1])

        fbError(status_vector&[])

    endif

endproc

proc pad

    parameters s$, l&
    return left$(s$ + space$(l&), l&)

endproc

proc fbSQLExec

    parameters db1&, sql$, mode%
    declare status_vector&[20], trans&, stmt&
    declare osqlda#, osqlvar#, osql#, tm_date#
    var sqlcount& = 0
    dim osqlda#, XSQLDA
    dim osqlvar#, XSQLVAR
    dim tm_date#, TIMEDATE
    Transaktion starten
    fb_isc_start_transaction(addr(status_vector&[0]), addr(trans&), 1, addr(db1&), 0, 0)

    if trans& > 0

        Statementhandle holen

        if left$(upper$(trim$(sql$)),7) <> SELECT

            fb_isc_dsql_execute_immediate(addr(status_vector&[0]), addr(db1&), addr(trans&), len(sql$), addr(sql$), 1, 0)

            if ((status_vector&[0] = 1) and status_vector&[1])

                fbError(status_vector&[])

            endif

        else

            fb_isc_dsql_allocate_statement(addr(status_vector&[0]), addr(db1&), addr(stmt&))

            if stmt& > 0

                Datenbereich zunächst für das Lesen der ersten 2 Felder vorbereiten
                dim osql#, sizeof(osqlda#) + 2 * sizeof(osqlvar#)
                clear osql#
                osqlda# = addr(osql#)
                osqlda#.version% = &SQLDA_VERSION1
                osqlda#.sqln% = 2
                Informationen über erste 2 Felder holen (Datentyp, Länge, etc.)
                fb_isc_dsql_prepare(addr(status_vector&[0]), addr(trans&), addr(stmt&), len(sql$), addr(sql$), 1, osql#)

                if ((status_vector&[0] = 1) and status_vector&[1])

                    fbError(status_vector&[])

                endif

                var d% = osqlda#.sqld%

                if d% > 2

                    Wenn mehr als zwei Felder, dann Datenbereich für erittelte Feldanzahl neu dimensionieren
                    clear osql#
                    dim osql#, sizeof(osqlda#) + d% * sizeof(osqlvar#)
                    osqlda# = addr(osql#)
                    osqlda#.version% = &SQLDA_VERSION1
                    osqlda#.sqln% = d%
                    Informationen über alle Felder holen (Datentyp, Länge, etc.)
                    fb_isc_dsql_prepare(addr(status_vector&[0]), addr(trans&), addr(stmt&), len(sql$), addr(sql$), 1, osql#)

                    if ((status_vector&[0] = 1) and status_vector&[1])

                        fbError(status_vector&[])

                    endif

                endif

                Feldbeschreibungen füllen und Titelzeile erzteugen
                declare fname$[d%-1], ftyp%[d%-1], fstyp%[d%-1], flen%[d%-1], fscale%[d%-1], fdata$[d%-1]
                var zeile$ =
                var maxlen& = 0

                whileloop 0, d%-1

                    osqlvar# = addr(osql#) + sizeof(osqlda#) + &loop * sizeof(osqlvar#)
                    fname$[&loop]  = osqlvar#.sqlname$
                    flen%[&loop]   = osqlvar#.sqllen%
                    case len(fname$[&loop]) > flen%[&loop] : flen%[&loop] = len(fname$[&loop])
                    ftyp%[&loop]   = osqlvar#.sqltype%
                    fstyp%[&loop]  = osqlvar#.sqlsubtype%
                    case ftyp%[&loop] = &date  : flen%[&loop] = 10
                    case ftyp%[&loop] = &date2 : flen%[&loop] = 10
                    fscale%[&loop] = osqlvar#.sqlscale%
                    print osqlvar#.sqltype%, hex$(ftyp%[&loop]),fstyp%[&loop],fname$[&loop],flen%[&loop]
                    zeile$ = zeile$ + pad(fname$[&loop],flen%[&loop]) + |
                    case flen%[&loop] > maxlen& : maxlen& = flen%[&loop]

                endwhile

                Titelzeile ausgeben

                select mode%

                    caseof 0 : print zeile$

                    caseof 1 : addstring zeile$

                endselect

                Trennlinie erzeugen und ausgeben
                zeile$ =

                whileloop 0, d%-1

                    zeile$ = zeile$ + mkstr$(-,flen%[&loop]) + |

                endwhile

                select mode%

                    caseof 0 : print zeile$

                    caseof 1 : addstring zeile$

                endselect

                Statement ausführen
                fb_isc_dsql_execute(addr(status_vector&[0]), addr(trans&), addr(stmt&), 1, 0)

                if ((status_vector&[0] = 1) and status_vector&[1])

                    fbError(status_vector&[])

                endif

                Datenbereich für Empfang eines Satzes vorbereiten
                osqlda#.sqln% = d% * 256
                declare data#[d%-1]
                declare ind&[d%-1]
                dim data#[], maxlen& + 1

                whileloop 0, d% - 1

                    long osql#, sizeof(osqlda#) + &loop * sizeof(osqlvar#) + 8 = addr(data#[&loop])
                    long osql#, sizeof(osqlda#) + &loop * sizeof(osqlvar#) + 12 = addr(ind&[&loop])

                endwhile

                Daten satzweise holen und auswerten
                var retcode& = 0
                retcode& = fb_isc_dsql_fetch(addr(status_vector&[0]), addr(stmt&), 1, osql#)

                while retcode& <> 100   100: keine weiteren Sätze

                    if ((status_vector&[0] = 1) and status_vector&[1])

                        fbError(status_vector&[])

                    endif

                    zeile$ =

                    whileloop 0, d%-1

                        select ftyp%[&loop]

                            caseof &varchar, &varchar2

                            fdata$[&loop] = string$(data#[&loop],2)

                            caseof &date, &date2

                            fb_isc_decode_sql_date(data#[&loop],tm_date#)
                            fdata$[&loop] = dtoc$(format$(%.4d, tm_date#.jahr& + 1900)
                            + format$(%.2u, tm_date#.mon& + 1)
                            + format$(%.2u, tm_date#.tag&))

                            caseof &char, &char2

                            fdata$[&loop] = string$(data#[&loop],0)

                            caseof &long, &long2, &short, &short2

                            fdata$[&loop] = str$(long(data#[&loop],0))

                            caseof &float, &float2

                            fdata$[&loop] = str$(double(long(data#[&loop],0)))

                            caseof &blob, &blob2

                            fdata$[&loop] = BLOB- + str$(fstyp%[&loop])

                        endselect

                        zeile$ = zeile$ + pad(fdata$[&loop],flen%[&loop]) + |

                    endwhile

                    inc sqlcount&
                    Datenzeile ausgeben

                    select mode%

                        caseof 0 : print zeile$

                        caseof 1 : addstring zeile$

                    endselect

                    retcode& = fb_isc_dsql_fetch(addr(status_vector&[0]), addr(stmt&), 1, osql#)

                endwhile

            endif

            Statementhandle freigeben
            fb_isc_dsql_free_statement(addr(status_vector&[0]), addr(stmt&), &DSQL_drop)
            endif  SELECT-Ende
            Transaktion abschließen
            fb_isc_commit_transaction(addr(status_vector&[0]), addr(trans&))

        endif

        if ((status_vector&[0] = 1) and status_vector&[1])

            fbError(status_vector&[])

        endif

        return sqlcount&

    endproc

    =============
    HAUPTPROGRAMM
    =============
    window 1000, 800
    cls
    var db1& = fbInit(SYSDBA, masterkey, Employee.fdb)
    set(errorlevel, -1)
    fbSQLExec(db1&, drop table BUECHER, 1)
    set(errorlevel, 1)
    fbSQLExec(db1&, create table BUECHER (titel CHAR(40), autor CHAR(40), preis NUMERIC(8,2), datum TIMESTAMP), 1)
    fbSQLExec(db1&, INSERT INTO buecher (titel,autor,preis) VALUES (XProfan für Dummies,RGH-Soft,19.94), 1)
    clearlist
    fbSQLExec(db1&, select * from BUECHER, 1)
    listbox$(BUECHER:,2)
    clearlist
    print fbSQLExec(db1&, select EMP_NO, FIRST_NAME, LAST_NAME, JOB_CODE, JOB_GRADE, JOB_COUNTRY, FULL_NAME, PHONE_EXT, HIRE_DATE from EMPLOYEE, 1)
    listbox$(EMPLOYEE:,2)
    clearlist
    print fbSQLExec(db1&, select * from PROJECT, 1)
    listbox$(PROJECT:,2)
    clearlist
    print fbSQLExec(db1&, select * from CUSTOMER, 1)
    listbox$2>(CUSTOMER:,2)
    waitinput
    fbDone(db1&)
    end
 
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.04.2009  
 



 
- Página 2 -



RGH
¡Hola,

y lo va weite: Sie es todavía no bastante reif, aber ya vorzeigbar: El Incluir, o. PCU, en direkt en FireBird Embedded zuzugreifen. Ohne Installation de Treibern oder Einträgen en el ODBC-Manager kann direkt en Tabellen zugegriffen voluntad. Lo puede sogra komplette Datenbanken producido voluntad. Näheres hay hier:

[...] 

Viel Spaß con el Ausprobieren. Un ausführliche Referenz el PCU-Características folgt en el nächsten Tagen!

Und el BLOBs bringe Yo el PCU auch todavía en ...

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
23.04.2009  
 




Dietmar
Horn
Gracias Roland,

Gracias! Dankeschön! usw.

Saludo
Dietmar

Den otro Rest debería wir tal vez mejor encima mi GMX-Adresse vereinbaren.

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




RGH
RGH, Beitrag=51964, Zeitpunkt=23.04.2009
Un ausführliche Referenz el PCU-Características folgt en el nächsten Tagen!


Ok, Referenz y Beispielprogramme nebst Erläuterungen son ahora al oben genanntem Ort auch Online!

Tipps y Tricks folgen ...

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
23.04.2009  
 




Dietmar
Horn
Einfach Super! Einfach genial!

Und el todavía no veces 1 Semana después de mi verzweifelten Hilferuf por PM!

Algo como a Kundenfreundlichkeit debería el Großen, como z.B. Microsoft oder Borland, sólo veces nachmachen! Das kriegen el nie y nimmer gebacken!

Wer ahora todavía siempre glaubt, XProfan sei no vollwertige Windows-Lenguaje de programación, sólo porque XProfan international desafortunadamente todavía relativ unbekannt es, el es wirklich no mehr a helfen!

Yo fühle mich jedenfalls una weiteres Tiempo en él bestätigt, el Pferd nombre XProfan como Lenguaje de programación gesetzt a haben! Und todos esta Spinner, el lo desafortunadamente auch en unserem Territorium son (en erster Linie el Informatiklehrer a el Hoyerswerdaer Gymnasien), el media, XProfan sei una kleine y schrottige Hilfs-Lenguaje de programación, el lasse Yo inzwischen siempre más links mentira, como z.B. una verschimmeltes Dreipfundbrot!

Saludo y Gracias!
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:  [...] 
23.04.2009  
 




Dietmar
Horn
Zitat de el aktuellen XProfan.chm:


XProfan es auch una komplette Datenbanksprache. Einfache a mittlere Datenbank-Anwendungen puede con XProfan problemlos realisiert voluntad.


Algo como debería meiner Meinung después de schnellstmöglich de el Hilfedatei gekillt voluntad!

Mit XProfan auch professionelle DBMS-Anwendungen redactar a puede - el es inzwischen absolut kein Problema mehr!

Nachdem inzwischen incluso ya Zehnjährige vorzeigbare y niveauvolle XProfan-Programas nachweisen puede, entonces debería deren Informatiklehrer con ihrem TP-/BP-Quatsch para DOS en Grund y Boden schämen!

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




RGH
Eben Yo una aktuelle Versión el PCU con neuen Beispielprogrammen hochgeladen. (Gleicher Ort, gleicher Dateiname!)

Was es neu?

64-Bit-Integertypen voluntad nun voll unterstützt. Como lo en XProfan esta Datentyp no son, voluntad intern en el PCU Floats (doppelte Genauigkeit) verwandt, así dass el Genauigkeit en 16 Stellen begrenzt es.

Texto-Blobs (BLOB SUB_TYPE 1) voluntad nun en normalen SQL-Befehlen unterstützt. Dabei es a beachten, dass el Longitud des SQL-Befehles en Firebird el 64k-Grenze no überschreiten darf. Andernfalls es una Fehlermeldung.

Was el unbegrenzte Nutzung de BLOBs betrifft, búsqueda Todavía después de uno eingängigen Syntax.

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
25.04.2009  
 




Detlef
Jagolski
Tolle Sache, sólo Schade dass el PCU no con Profano2CPP va.

Saludo

Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
25.04.2009  
 



Tal vez de el Unitcode con Prf2CPP una DLL herstellen. ^ ^
 
25.04.2009  
 




RGH
Detlef Jagolski, Beitrag=52038, Zeitpunkt=25.04.2009
Tolle Sache, sólo Schade dass el PCU no con Profano2CPP va.


Sobald Yo auch el BLOBs drin habe y el Quellcode una bißchen optimiert, aufgehübscht y kommentiert habe, hay auch el Quellcode el PCU, el entonces mi $I como Incluir eingebunden voluntad kann. Und entonces kann auch Profano2CPP así qué anfangen. Bitte todavía algo Geduld. Noch bin Yo al Basteln.

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
25.04.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

7.104 Views

Untitledvor 0 min.
Peter Max Müller04.02.2019
H.Brill09.02.2017
Michael Klumb29.03.2016
rquindt01.03.2016
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