sql >> Database >  >> RDS >> Sqlserver

TFDQuery.Prepare kan geen parametertypes bepalen voor INSERT-query op MS SQL SERVER

Ik zou hier hulp volgen en vermijden om Prepare voordat parameters worden gedefinieerd (hun gegevenstypen zijn volledig gespecificeerd). Je hebt niets anders gemist dan deze notitie uit de help:

Voor algemene ODBC-stuurprogramma's (u praat nog steeds met een ODBC-stuurprogramma, ongeacht of deze intern OLE DB gebruikt om met het DBMS te communiceren), stelt FireDAC geen parametergegevenstypen vast voor de voorbereide opdracht. In plaats daarvan bereidt het een opdrachtverklaring voor op het doel-DBMS en probeert het bestaande te binden van de Params verzameling. Dat is hoe de Prepare methode is geïmplementeerd (Tokyo).

ODBC API biedt de SQLDescribeParam functie om parameterdetails voor de voorbereide opdracht te verkrijgen, maar FireDAC gebruikt deze nergens (op dit moment). In plaats daarvan laat het de verzameling van parameters handmatig bouwen. Dat is niet verkeerd, want uiteindelijk is het de ontwikkelaar die moet weten welke waarde aan een bepaalde opdrachtparameter moet worden toegekend om dit waardetype te kennen.



  1. Query om volledige tabelscans te vinden in oracle

  2. Tijd voor het opvragen van DB - Bookshelf/knex

  3. Zoek uit of een CHECK-beperking op kolomniveau of op tabelniveau is in SQL Server (T-SQL-voorbeelden)

  4. Betere manier om wachtwoord op te slaan in mysql, dat ook kan worden gedecodeerd met php