Eine Zelle im DBGrid ändern



  • ah danke, stimmt, das hatte noch gefehlt. ich glaube, der fehler könnte daran liegen, dass die spalten des grids ja ganz andere sind, als jetzt in der neu angelegten tabelle sind. ich werd das mal testen.



  • also ich habe die Spalten des DBGrids über den Feldeditor erstellt:

    at_id, at_snr, name1, name2, ort1, ort2

    leider bekomme ich noch ne Fehlermeldung mit inkonsistenen Parametern ...



  • Ich bekomme leider immernoch diesen Fehler:

    Erste Gelegenheit für Exception bei $7627F328. Exception-Klasse EOleException mit Meldung 'Ein Parameterobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben'. Prozess Projekt.exe (7468)

    Ich weiß nicht, was ich falsch mache ...



  • du hast irgendwo vergessen einen Parameter zu setzen der im SQL-Kommando steht, also zeig einfach mal nochmal den aktuellen Quellcode wo der Fehler auftritt, denn da muß es ja irgendwo sein



  • {
    	AuftraegeGrid->DataSource = src_auftrag_search_schadennr ;
    
    	qry_auftrag_search_schadennr->Close() ;
    	qry_auftrag_search_schadennr->SQL->Clear() ;
    	qry_auftrag_search_schadennr->SQL->Add("select tabelle1.at_id, tabelle1.at_snr, tabelle2.name1, tabelle3.name2, tabelle2.ort1, tabelle3.ort2 from tbl_auftraege tabelle1 ") ;
    	qry_auftrag_search_schadennr->SQL->Add("full outer join ") ;
    	qry_auftrag_search_schadennr->SQL->Add("(select at_bet_part_at_id, at_bet_part_name as name1, at_bet_part_ort as ort1 ") ;
    	qry_auftrag_search_schadennr->SQL->Add("from tbl_auftraege_beteiligte_parteien where at_bet_part_typ = 5) as tabelle2 ") ;
    	qry_auftrag_search_schadennr->SQL->Add("on (tabelle1.at_id = tabelle2.at_bet_part_at_id) ") ;
    	qry_auftrag_search_schadennr->SQL->Add("full outer join ") ;
    	qry_auftrag_search_schadennr->SQL->Add("(select at_bet_part_at_id, at_bet_part_name as name2, at_bet_part_ort as ort2 ") ;
    	qry_auftrag_search_schadennr->SQL->Add("from tbl_auftraege_beteiligte_parteien where at_bet_part_typ = 6) as tabelle3 ") ;
    	qry_auftrag_search_schadennr->SQL->Add("on (tabelle1.at_id = tabelle3.at_bet_part_at_id) ") ;
    	qry_auftrag_search_schadennr->SQL->Add("where tabelle1.at_snr = :snr ;") ;
    	qry_auftrag_search_schadennr->Open() ;
    }
    

    Im Feldeditor habe ich folgende Felder erstellt:

    at_id
    at_snr
    name1
    name2
    ort1
    ort2



  • und wo bitte definierts du deinen Parameter snr? 😮



  • ja da hast du wohl recht, das ist dämlich, dass ich den vergessen habe ...

    hab das jetzt eingefügt,

    qry_auftrag_search_schadennr->Parameters->ParamByName("snr")->Value = SuchString ;
    

    bekomme aber jetzt wieder nen "unbekannten Fehler" 😕

    Ich seh da nicht durch ... Kann es sein, dass Access mit dem SQL-Befehl nicht klar kommt? Also mit dem 'full outer join' ?

    Erste Gelegenheit für Exception bei $76F7F328. Exception-Klasse EOleException mit Meldung 'Unbekannter Fehler'. Prozess Projekt.exe (2600)



  • ich wußte schon immer daß Access keine richtige Datenbank kann 👎
    hab leider auch kein Access zum Testen

    dann mußt du wohl doch die Variante mit dem OnDrawColumnCell nehmen



  • Ich habe mal im Internet ein wenig nachgeforscht und herausgefunden, dass Jet-SQL kein FULL OUTER JOIN kennt.
    Gibt es da noch einen anderen weg, den SQL Befehl irgendwie umzuschreiben? Oder eine andere Einstellung in der ADOConnection vorzunehmen?

    Mal zur Info: Also erstmal soll es ja nur auf dem einen PC laufen, aber später soll die Datenbank auf einen MySQL-Server gepackt werden.
    Kennt denn MySQL FULL OUTER JOIN? Wenn nicht, brauche ich es ja jetzt auch nicht anwenden, da ich sonst später alles wieder umschreiben muss ...



  • Ja, der MS-SQL Server beherrscht FULL OUTER JOINS, zumindest laut Dokumentation.

    Aber warum verwendest Du Access und nicht den kostenlosen MS-SQL Server Express? Der ist doch genau dafür da.



  • Du das ist ne echt gute Frage ^^ Ein Freund hatte mir das empfohlen 🙂 und fand das auch ziemlich nett ...

    Was muss ich dann in der ADOConnection einstellen, wenn ich mit MS-SQL Server arbeiten möchte? Wo packe ich dann meine ganzen Daten aus Access hin???



  • Kommando zurück, ich habe mich verlesen. Du hast MySQL geschrieben und ich MS SQL gelesen.

    Zu MySQL kann ich nicht viel sagen. Ich bin nicht einmal sicher, ob Du da überhaupt die ADO-Komponenten einsetzen kannst, oder auf spezifische Zugriffskomponenten zurückgreifen mußt...

    Sorry.



  • Na dann bin ich dafür, dass ich erstmal full outer join umschreibe. in mySQL wird full outer join nicht akzeptiert!!

    ich habe gelesen, dass man das irgendwie mit left outer join und right outer join umschreiben kann, aber ich weiß noch nicht wie ...



  • ersetz einfach mal full durch left, liefert bei mir die gleichen Ergebnisse, allerdings arbeite ich mit dem MSSQL



  • na das war schonmal hilfreich 🙂 jetzt erkennt er den Befehl schonmal ^^
    so hat er auch einen syntaxfehler erkannt, und zwar ein Fehlenden Operator:

    Erste Gelegenheit für Exception bei $76F7F328. Exception-Klasse EOleException mit Meldung 'Syntaxfehler (fehlender Operator) in Abfrageausdruck '(tabelle1.at_id = tabelle2.at_bet_part_at_id) left outer join (select at_bet_part_at_id, at_bet_part_name as name2, at_bet_part_ort as ort2 from tbl_auftraege_beteiligte_parteien where at_bet_part_typ = 6) as tabelle3 on (tabelle1.at_id = tabelle3.at_bet_''. Prozess Projekt.exe (6740)


Anmelden zum Antworten