Einzelnen Beitrag anzeigen

sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#29

Re: bde schneller als firebird

  Alt 19. Mai 2006, 13:35
schau, der sinn der ganzen abfrage ist folgender:

ich muss in dem programm UNBEDINGT das dbgrid beibehalten..macht sich bei sql natürlich schwer; also war mein ausweg: immer genau 20 datensätze holen und wenn der benutzer bild-up oder -down drück, die vorherigen oder nächsten zwanzig holen...also wird das select-sql-statement immer wieder neu generiert

das sql-statement von dem du redest ist ein beispiel, wo der user grad nach dem record sucht, wo asterm = peter...mein ziel ist, dass der benutzer dan folgendes zurückbekommt im grid:

-zuerst den eintrag (falls vorhanden), der in der datenbank genau VOR 'peter' kommt
-dann (falls vorhanden) 'peter'
-dann sortiert alle weiteren, die nach 'peter' kommen

..und insgesamt zwanzig..also wie in nem richtigen grid, in dem sich 'alle`datensätze befinden...

jetzt verständlicher?

ps: ein einzelnder record wird ausgewählt mit:

SQL-Code:
select d.id, d.asterm, d.asabk, d.asprgm, d.assem, d.zsterm, d.zsabk, d.zsprgm, d.zssem, d.datum, d.proj, d.rev, d.upddatum, d.asdef, d.zsdef, d.asaudio, d.asvideo, d.asabbildung, d.zsabbildung, d.zsaudio, d.zsvideo, asmain.asterm as asverw, zsmain.zsterm as zsverw, a.aut as aut, ua.aut as updaut, aslit.qcode as asqcode, zslit.qcode as zsqcode
from dicentries d
left join dicentries asmain on d.asverw = asmain.id
left join dicentries zsmain on d.zsverw = zsmain.id
left join aut a on d.aut = a.id
left join aut ua on d.updaut = ua.id
left join lit aslit on d.asqcode = aslit.id
left join lit zslit on d.zsqcode = zslit.id
where ...
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat