Ik heb een formulier waar de gebruiker een zoek string in kan voeren. Bij ieder karakter dat ingevoerd wordt, wordt de query uitgevoerd en krijg je dus steeds een actueel resultaat te zien. Verder kan de gebruiker ook nog aangeven met een combobox in welke velden gezocht moet worden. (Dus bijv prijs, artikelnaam, afzet, alles, enz...).
Nu heb ik gezien dat delphi voor de parameters kijkt naar de velden. Daar bedoel ik mee, de lengte van het veld. Bijv is het artikelnaam veld van type VARCHAR(10) dan kan je ook geen grotere waarden meegeven bij de param. Opzich wel enigszins logisch maar toch wil ik dat niet.
In mijn query stop ik bij de parameter waarden (dus wat de gebruiker als zoekstring invoert) een % ervoor en er achter. Dus wanneer de gebruiker 9 tekens heeft ingevoerd bij een db veld die gedefineerd is als VARCHAR(10), heb je dus een probleem en zal delphi een foutmelding genereren. De invoer is 9 + 2x een % = 11 tekens.
Nu kan ik wel allerlei testen gaan uitvoeren, maar dat is best veel werk. Het liefst heb ik gewoon dat delphi de grootte van de velden via de metadata gewoon negeerd. Nu dacht ik de propery paramcheck daarvoor te kunnen gebruiken. Maar die wordt helaas niet hiervoor gebruikt.
Heeft iemand anders ook wel eens met dit probleem te maken gehad? Zo ja wat voor oplossing heb je dan gebruikt.
Kijk als het echt niet anders kan, ga ik zelf wel die controles uitvoeren. (Dus wanneer de user input 9 tekens zijn, moet ik dus in where clausule voor dat veld 2 items stoppen ==> where field Like '%abcdefghi' or field Like 'abcdefghi%', enz....)
Nu heb ik gezien dat delphi voor de parameters kijkt naar de velden. Daar bedoel ik mee, de lengte van het veld. Bijv is het artikelnaam veld van type VARCHAR(10) dan kan je ook geen grotere waarden meegeven bij de param. Opzich wel enigszins logisch maar toch wil ik dat niet.
In mijn query stop ik bij de parameter waarden (dus wat de gebruiker als zoekstring invoert) een % ervoor en er achter. Dus wanneer de gebruiker 9 tekens heeft ingevoerd bij een db veld die gedefineerd is als VARCHAR(10), heb je dus een probleem en zal delphi een foutmelding genereren. De invoer is 9 + 2x een % = 11 tekens.
Nu kan ik wel allerlei testen gaan uitvoeren, maar dat is best veel werk. Het liefst heb ik gewoon dat delphi de grootte van de velden via de metadata gewoon negeerd. Nu dacht ik de propery paramcheck daarvoor te kunnen gebruiken. Maar die wordt helaas niet hiervoor gebruikt.
Heeft iemand anders ook wel eens met dit probleem te maken gehad? Zo ja wat voor oplossing heb je dan gebruikt.
Kijk als het echt niet anders kan, ga ik zelf wel die controles uitvoeren. (Dus wanneer de user input 9 tekens zijn, moet ik dus in where clausule voor dat veld 2 items stoppen ==> where field Like '%abcdefghi' or field Like 'abcdefghi%', enz....)