Foro | | | | - 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 |
| | | 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ónFireBird 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ónFireBird 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. ^ ^ |
| | | | |
| | 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 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 5 subscriber: |