Forum | | | | - page 1 - |
| Dietmar Horn | allô zusammen,
avec meinem XProfan-Firebird-SQL-projet klappt es soweit pas mal.
eh bien gibt es mais un Problem, welches je possible jusqu'à vorgestern avec XProfan lösen devrait, si cela avec XProfan aktuell überhaupt possible ist.
dans qui ersten offiziellen Beta pour ausgesuchte Tester soll cela Programme eh bien absolument comme Embedded-variante courir, et pas comme pas-Embedded.
avec pas-Embedded sur ODBC-Schnittstelle mittels qui normalen FB-SQL-Befehle klappt bisher alles weitestgehend correcte.
Doch comment peux je qui Embedded-variante initialisieren, um après avec denselben SQL-Routinen im Programme comment gewohnt weiterarbeiten trop peut? Später soll qui Anwender ensuite entre beiden Varianten selber qui sélection rendez-vous.
Pour qui SQL-Experten sous euch habe je déjà la fois alles dans un ZIP-Archiv emballé - alors Firbird embedded (aucun installation erforderlich) et quelques zusätzliche Hilfedateien (sauf qui, quelle im Unterordner doc sowieso déjà vorhanden sommes). qui beigelegte Patienten.fdb pourrait zum Testen dienen.
Selber habe je qui paire le son Hilfedatei(en) nécessaire Fichiers dans cela Projektverzeichnis kopiert et qui fbembed.dll dans fbclient.dll umbenannt. le son Hilfedatei(en) sollte cela ausreichen. comment je cela jusqu'à maintenant verstehe, braucht on doch den reste aus dem Firebird-Dossier aus dem ZIP doch gar pas absolument, ou bien?
Doch avec KompilierenMarqueSéparation bekomme je simple aucun liaison hin!
si je cela dans den prochain Tagen (notfalls tantôt la fois per Workarount) pas irgendwie avec XProfan hinbekomme, ensuite peux je qui travail de mehreren Monaten im Prinzip dans qui Tonne kloppen ...
Roland, la hâte Du peut-être comme banque de données-Profi une Solution pour cet Problem, ou bien qui de den anderen DB-Profis kennt sich encore avec cela aus?
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: [...] | 17.04.2009 ▲ |
| |
| | | | | - page 1 - |
| RGH | Salut,
ici un erster partie zur Verwendung de direktem Zugriff sur Firebird mittels XProfan. cela Beispiel sollte sowohl pour qui Client-Version (là est qui DLL allerdings anders: fbclient.dll, chez Interbase naturellement aussi) comme aussi comment ici pour qui Embedded-Version marcher.
ACHTUNG: cela Beispiel funktioniert! si on avec oui antwortet wird qui banque de données réellement gelöscht et beim Versuch, qui pas plus vorhandene banque de données trop schließen, gibt es qui entsprechene Firebird-Fehlermeldung. ALso auparavant s'il te plaît une Sicherheitskopie qui Datenbankdatei (im Beispiel Patienten.fdb) erstellen.
quoi geschieht im Programme? - avec ImportDLL volonté qui API-Funktionen qui DLL imortiert - avec isc_expand_dpb() wird qui Verbindungsstring erzeugt. dans unserem le cas brauchen wir seulement Username et Paßwort. qui entsprechenden Konstanten venons aus qui ibase.h - avec isc_attach_database() wird qui liaison zur banque de données hergestellt. si qui erste Eintrag des Status-Arrays une 1 ist, ist qui zweite Eintrag im piège ungleich 0 qui Interbase-Fehlernummer. dans diesem le cas wird avec isc_interprete() qui text qui entsprechenden Fehlermeldung ermittelt. - avec isc_drop_database() peut wir eh bien qui banque de données effacer. cela klappt naturellement seulement avec korrektem Usernamen et Paßwort. Ansonsten gibt es une Fehlermeldung. (cela Effacer qui banque de données habe je comme praktischen Test pour qui erfolgreiche liaison gewählt, weil un SELECT un peu komplexer wäre ... ;) ) avec quelque chose Fleiß et Erfahrung peux on naturellement avec den übrigen API-Funktionen aussi SQL-Statements absetzen, BLOBs écrivons et lesen, etc. qui API erinnert un peu à qui ODBC-API ... malheureusement seulement un peu. - avec isc_detach_database() wird qui liaison zur banque de données finissez ... vorrausgesetzt vous wurde im vorigen Schritt pas gelöscht.
cela Beispiel beweist, quoi mais eh bien sûr était: si avec anderen Programmiersprachen qui directe Zugriff sur Firebird allez, ca va aussi avec XProfan: KompilierenMarqueSéparationFireBird 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
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 | 20.04.2009 ▲ |
| |
| | Dietmar Horn | merci!
cela SQLInit et SQLDone hätten wir ensuite oui déjà la fois.
si je ensuite encore irgendwie cela Äquivalent trop SQLExec per API avec den entier normalen SQL-Übergabestrings (SELECT, INTO, UPDATE, etc.) hätte, ensuite wäre qui Kuh oui seulement la fois presque vom glace.
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: [...] | 20.04.2009 ▲ |
| |
| | RGH | Dietmar Horn, Beitrag=51895, Zeitpunkt=20.04.2009
merci!
cela SQLInit et SQLDone hätten wir ensuite oui déjà la fois.
si je ensuite encore irgendwie cela Äquivalent trop SQLExec per API avec den entier normalen SQL-Übergabestrings (SELECT, INTO, UPDATE, etc.) hätte, ensuite wäre qui Kuh oui seulement la fois presque vom glace.
Salut Dietmar
eh bien car! cela meiste allez déjà. Aus Trouvé, qui mir encore pas bekannt sommes, läßt sich ne...aucune champ avec NUMERIC(10,2) définir. NUMERIC(8,2) hingegen funktioniert. et Felder, qui avec NUMERIC(10,2) défini sommes, comment z.B. SALARY dans EMPLOYEES erzeugen beim Zugriff lediglich une Fehlermeldung. et BLOBs gibt es aussi encore pas, dürften mais ne...aucune großes Problem son. KompilierenMarqueSéparationFireBird 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 ▲ |
| |
| | | | - page 2 - |
| | RGH | Salut,
et und dir weite: vous ist encore pas entier reif, mais déjà vorzeigbar: qui Include, bzw. PCU, um direct sur FireBird Embedded zuzugreifen. sans installation de Treibern ou bien Entrées dans den ODBC-Manager peux direct sur Tabellen zugegriffen volonté. Es peut sogra komplette Datenbanken erzeugt volonté. Particularités gibt es ici:
[...]
Viel Amusement avec dem Ausprobieren. une détaillé référence qui PCU-Funktionen folgt dans den prochain Tagen!
et qui BLOBs bringe je qui PCU aussi encore chez ...
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 | 23.04.2009 ▲ |
| |
| | Dietmar Horn | merci Roland,
merci! Dankeschön! usw.
Salut Dietmar
Den anderen reste devrait wir peut-être besser sur mon GMX-Adresse convenir.
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: [...] | 23.04.2009 ▲ |
| |
| | RGH | RGH, Beitrag=51964, Zeitpunkt=23.04.2009
une détaillé référence qui PCU-Funktionen folgt dans den prochain Tagen!
Ok, référence et Exemples de programmes nebst Erläuterungen sommes maintenant am dessus genanntem lieu aussi Online!
Tipps et Tricks folgen ...
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 | 23.04.2009 ▲ |
| |
| | Dietmar Horn | simple Super! simple genial!
et le reste pas la fois 1 semaine pour meinem verzweifelten Hilferuf per PM!
Quelque chose comme à Kundenfreundlichkeit devoir qui Großen, comment z.B. Microsoft ou bien Borland, seulement la fois contrefaire! cela kriegen qui nie et nimmer cuit au four!
qui maintenant encore toujours croyez, XProfan sei aucun vollwertige Windows-Programmiersprache, seulement weil XProfan international malheureusement encore relativ inconnu ist, dem ist wirklich pas plus trop aider!
je fühle mich jedenfalls un weiteres la fois y bestätigt, sur cela Pferd nommé XProfan comme Programmiersprache gesetzt trop avons! et alle cet Spinner, qui es malheureusement aussi dans unserem Territorium gibt (dans erster ligne number qui Informatiklehrer à den Hoyerswerdaer Gymnasien), qui meinen, XProfan sei une kleine et schrottige Hilfs-Programmiersprache, qui lasse je inzwischen toujours plus à gauche liegen, comment z.B. un verschimmeltes Dreipfundbrot!
Salut et merci! 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 | citation aus qui aktuellen XProfan.chm:
XProfan ist aussi une komplette Datenbanksprache. Simple jusqu'à mittlere banque de données-Anwendungen peut avec XProfan problemlos realisiert volonté.
Quelque chose comme sollte meiner attitude pour schnellstmöglich aus qui Hilfedatei gekillt volonté!
avec XProfan aussi professionelle DBMS-Anwendungen erstellen trop peut - c'est inzwischen absolu ne...aucune Problem plus!
après que inzwischen sogar déjà Zehnjährige vorzeigbare et niveauvolle XProfan-Programme justifier peut, ensuite devrait sich en Informatiklehrer avec ihrem TP-/BP-Quatsch pour DOS dans Grund et Boden schämen!
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: [...] | 24.04.2009 ▲ |
| |
| | RGH | plan habe je une aktuelle Version qui PCU avec neuen Beispielprogrammen hochgeladen. (Gleicher lieu, gleicher Dateiname!)
quoi ist récente?
64-Bit-Integertypen volonté eh bien voll soutenu. là es dans XProfan cette Datentyp pas gibt, volonté interne dans qui PCU Floats (doppelte Genauigkeit) verwandt, so dass qui Genauigkeit sur 16 se mettre begrenzt ist.
Text-Blobs (BLOB SUB_TYPE 1) volonté eh bien dans normalen SQL-Befehlen soutenu. Dabei ist trop tenir compte de, dass qui Longueur des SQL-Befehles chez Firebird qui 64k-frontière pas überschreiten darf. Andernfalls erfolgt une Fehlermeldung.
quoi qui unbegrenzte Nutzung de BLOBs betrifft, cherche je encore pour einer eingängigen Syntax.
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 | 25.04.2009 ▲ |
| |
| | Detlef Jagolski | Tolle l'affaire, seulement tant pis dass qui PCU pas avec Profan2CPP allez.
Salut
Detlef |
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 25.04.2009 ▲ |
| |
| | | peut-être aus dem Unitcode avec Prf2CPP une DLL herstellen. ^ ^ |
| | | | |
| | RGH | Detlef Jagolski, Beitrag=52038, Zeitpunkt=25.04.2009
Tolle l'affaire, seulement tant pis dass qui PCU pas avec Profan2CPP allez.
Sobald je aussi qui BLOBs drin habe et den Quellcode légèrement optimiert, aufgehübscht et kommentiert habe, gibt es aussi den Quellcode qui PCU, qui ensuite mi $I comme Include eingebunden volonté peux. et ensuite peux aussi Profan2CPP avec cela quoi anfangen. s'il te plaît et avec ca patience. encore suis je am bricoler.
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 | 25.04.2009 ▲ |
| |
|
répondreOptions du sujet | 7.171 Views |
Themeninformationencet Thema hat 5 participant: |