[line]function nSuchen(Suchwert, Suchbegriff, nDirektsuche){
var nCounter = 0;
var nIndex = 0;
var nStat;
var nRegExSuche = false;
var TestSuchbegriff = nTestSuchbegriff(Suchbegriff);
var oRecord = xfa.record.Datenverbindung.resolveNode(Suchwert);
nDBClone.first();
while(!nDBClone.isEOF()){
nRegExSuche = nSucheRegExp(Suchbegriff, oRecord.value, TestSuchbegriff);
if(nRegExSuche){
nCounter++;
nObject.nData[nIndex +1].AuNummer = xfa.record.Datenverbindung.resolveNode("AuNummer").value;
}
nDBClone.next();
}
nObject.nCounter = nCounter;
if(!nDirektsuche){
if(nCounter){
return nObject;
}
else{
nStat = nInfo(false, false, Suchbegriff, Suchwert, true, nObject);
return nStat;
}
}
else{
if(nCounter){
if(nCounter > 1){
nStat = nMultipleDaten(nObject, Suchbegriff, Suchwert);
if(!nStat){
nBackToData();
}
return nStat;
}
else{
nLoadData(nObject.sObj[1]);
nDataIndex[0] = "isFirst";
nDataIndex[1] = nObject.sObj[1]-1;
return true;
}
}
else{
var nStat = nInfo(false, false, Suchbegriff, Suchwert, true, nObject);
nBackToData();
return nStat;
}
}
}
function nTestSuchbegriff(nSuchbegriff){
var nTest = new RegExp([*]","gm");
return nTest.test(nSuchbegriff);
}
function nSucheRegExp(Suchbegriff, nValue, nPlaceHolder){
if(!nPlaceHolder){
var nRegExTest = new RegExp(Suchbegriff,"igm");
var nReturn = nRegExTest.test(nValue);
return nReturn;
}
else{
var nStatus = true;
var nSplitSuchbegriff = Suchbegriff.split("*");
for(var i = 0; i < nSplitSuchbegriff.length; i++){
if(nSplitSuchbegriff
.length > 0){
var nStringSearch = new RegExp(nSplitSuchbegriff,"igm");
var nTestValue = nStringSearch.test(nValue);
if(nTestValue){
nValue = nValue.substring(nStringSearch.lastIndex);
}
else{
nStatus = false;
break;
}
}
}
return nStatus;
}
}
Formular1.#subform[0].Textfeld6::exit - (JavaScript, client)
if(nAccessOffen){
if(this.rawValue != null & this.rawValue != ""){
var nStatus = Scripte.nSuchen("AuNummer", this.rawValue, true);
if(nStatus){
this.rawValue = null;
}
}
}
else{
app.alert("Keine Datenbank geöffnet.");
this.rawValue = null;
}
Formular1.#subform[0].Close::click - (JavaScript, client)
if(nAccessOffen){
nDBClone.close();
nAccessOffen = false;
}
Formular1.#subform[0].Open::click - (JavaScript, client)
//EINGEFÜGT BEI FORMULAR READY
Formular1::ready:form - (JavaScript, client)
nDBClone = xfa.sourceSet.Datenverbindung.clone(1);
nDBClone.open();
nAccessOffen = true;
[line]
Hallo,
muss mich hier jetz mal einklinken, hoffe ich bin nicht zu spät dran...
Bin mit einer SQL-DB auf einem unserer Server verbunden. Hab nur waldes script bisschen umgeschrieben und gekürzt, da die Performance wirklich bescheiden ist..
SQL-DB mit ca. 40000 einträgen soll Mit dem feld AuNummer gefiltert werden, und die dazugehörigen Daten zu diesem Datensatz in den übrigen Feldern ausgegeben werden.
Datenverbindung geht über eine SQL Abfrage, die ORDER BY AuNummer enthält. Bis Datensatz 4000 ca. geht diese Abfrage hier in unter 5 Sek. Komme ich aber über 10000, ist es fast unmöglich, innerhalb 10 minuten den Datensatz zu finden, er rüttelt sich praktisch zu tode...
Kann man mir sagen, was an dem Code falsch ist, oder wie ich die Dauer, Datensätze zu finden, verkürzen kann. So hat das leider keinen sinn..
Hoffe auf Hilfe
MfG Daniel
[/*]