Originally Posted by
Antoine
Weet niet wat je bedoeld willem, maar ik denk dat we iets anders bedoelen...
...
en dat gaat met 1 OR maar gebruik ik er nog 1, dan gaat de compiler klagen..
Wat Willem bedoelde is om ANSIContainsText(vartostr(Dataset['STRAAT']), edSearch.Text) te gebruiken.
Dit dus:
Delphi Code:
Accept := ANSIContainsText(vartostr(DataSet['NAAM']), edSearch.Text)
OR ANSIContainsText(vartostr(Dataset['STRAAT']), edSearch.Text)
OR ANSIContainsText(vartostr(Dataset['NR']), edSearch.Text)
OR ANSIContainsText(vartostr(Dataset['WOONPLAATS']), edSearch.Text)
OR ANSIContainsText(vartostr(Dataset['TELEFOON']), edSearch.Text);
Het probleem is namelijk niet de 2e OR maar dat één van die velden NULL is en die mag je niet meegeven aan ANSIContainsText.
(Je Dataset['STRAAT'] of Dataset['NR'] heeft dus waarschijnlijk NULL als waarde)
(en met vartostr(Dataset['xxx']) voorkom je dat.)
Maar je zou ook (zoals Peter al aangaf) het volgende kunnen doen:
Delphi Code:
Accept := ANSIContainsText(DataSet.FieldByName('NAAM').AsString, edSearch.Text)
OR ANSIContainsText(DataSet.FieldByName('STRAAT').AsString, edSearch.Text)
OR ANSIContainsText(DataSet.FieldByName('NR').AsString, edSearch.Text)
OR ANSIContainsText(DataSet.FieldByName('WOONPLAATS').AsString, edSearch.Text)
OR ANSIContainsText(DataSet.FieldByName('TELEFOON').AsString, edSearch.Text);
(DataSet.FieldByName('xxx').AsString zet een eventuele NULL ook om naar een lege string)
Het kan allebei. Zolang je er maar voor zorgt dat je geen NULL waardes mee geeft aan ANSIContainsText.
Bookmarks