- Motorola Moto Tag - nyomom, követ
- Magisk
- Prohardver app (nem hivatalos)
- Yettel topik
- Garmin Fenix 7 és 7S - profi sport megszokásból
- Itthon is kapható lesz a kerámia Xiaomi Band 10
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Motorola Edge 30 Neo - wake up, Jr...
- Samsung Galaxy Watch7 - kötelező kör
- iPhone topik
Aktív témák
-
Fko
tag
Köszi. Közben megoldottam a problémát egyedül.
Így adtam át a TDateTimePicker-ben kiválasztott dátumot:
dtpDatum->Date.DateString()
így aztán stringként letároltam,
visszafelé pedig:
dtpDatum->Date = frmData->dsKolcsonzes->DataSet->Fields->FieldByName(''datum'')->AsDateTime;
Azért köszi! -
Fko
tag
Up!
-
Fko
tag
Akadt egy újjabb problémám közben.
Tehát a kölcsönzés táblában van egy olyan mező, hogy kölcsönzés dátuma.
Tehát ez egy dátum típusú mező, de nem sikerül sem sehogyan sem, hogy elfogadja a dátumot amit átadok neki.
Tehát én egy DateTimePicker-t használok ->Date.DateString()-et adom át az insertes Format()-nak.
Nem tudod, hogy kell átadni dátumot, hogy ne legyen type mismatch? -
Alan
aktív tag
-
Fko
tag
Nekiálltam újra az egész feladatnak.
Most még csak a szerző felvitelt és módosítást csináltam meg, de az most jól működik.
AnsiString t = Format(''INSERT into szerzok (vnev, knev) VALUES ('%s', '%s')'', ARRAYOFCONST((vezeteknev, keresztnev)));
Ahogy kisilabizáltam, kb. így kell használni a Format()-ot.
Köszi -
Alan
aktív tag
Nem lehet, hogy szóköz van a string-jeidben és nem teszi idézőjelbe őket a paraméterátadáskor?
Ha nem ez az ok, akkor viszont biztosan a BDE csuklása lesz. Úgy már én is jártam, hogy ugyanezt a hibaüzenetet adta, amikor (szerinte) nem megfelelő hosszúságú string-eket adtam át lekérdezés paramétereként. (Igaz, ez nem teljesen volt olyan, mint a te eseted, mert nálam szövegkonstansok is voltak a lekért mezők között, és ezeken akadt fenn a BDE.)
A megoldás az volt, hogy minden string paramétert ''kipárnáztam'' arra a hosszra, amit a lekérdezés első rekordjához használt. Ronda, de finom, mert a végén működött
Egyébként mindenképpen ajánlom a Format() függvényt, legalább egy kipróbálás erejéig. Azzal az SQL parancs valami ilyesmi formát fog ölteni:
INSERT INTO konyvek (Isbn, Cim, Szerzoazon, Peldanyszam, Ev, Kolcsonpsz) VALUES (''a'', ''b'', 1, 2, 2004, 2)
, ezt pedig meg kell zabálnia még a BDE-nek is. -
Fko
tag
Params-nál minden ok.
Amúgy Type mismatch in expression hibát dob EDBEngineError-ként.
De érdekes, hogy a másik táblám a két string mezővel pedig ugyanígy tökéletesen műxik és tudok is új rekordot felvenni.
Lehet, hogy a BDE-vel van valami gond? -
Alan
aktív tag
A fejlesztőrendszerben mit látsz a Params tulajdonságnál? Rendesen ki van töltve, minden paraméter szerepel, adattípusokkal együtt?
Esetleg egy ''frmData->qrAddKonyv->Close;'' még befigyelhetne a legelejére, bár ExecSQL()-nél talán nem kötelező.
Na és ha végképp nem megy és már nagyon sürgős, akkor javaslom a paraméterek behelyettesítését a Format() függvénnyel a Params[] tömb helyett. Csúnyább, de az tuti jó lesz, meg jóval könnyebb debugolni is. -
Fko
tag
Szóval az a házim builderből, hogy egy könyvtári nyilvántartó rendszer szerűséget csináljak.
Az elején még minden jól is ment, de most egyszerűen megakadtam és nem tudom mi a baj.
Van egy táblám :
konyvek
kid auto incrementes unique key
isbn string 10 karakter
cim string 100
szerzoazon int
peldanyszam int
ev int
kolcsonpsz int
ilyen mezőkkel.
Próbálok beszúrni a táblába, csináltam egy eljárást:
void __fastcall TfrmMain::KonyvBeszur(AnsiString kisbn, AnsiString kcim ,int kszerzoazon, int kpsz, int kev) {
frmData->qrAddKonyv->ParamByName(''k1'')->AsString = ''fd'';
frmData->qrAddKonyv->ParamByName(''k2'')->AsString = ''fdss'';
frmData->qrAddKonyv->ParamByName(''k3'')->AsInteger = 1;
frmData->qrAddKonyv->ParamByName(''k4'')->AsInteger = 20;
frmData->qrAddKonyv->ParamByName(''k5'')->AsInteger = 10;
frmData->qrAddKonyv->ParamByName(''k6'')->AsInteger = 20;
/* frmData->qrAddKonyv->ParamByName(''k1'')->AsString = kisbn;
frmData->qrAddKonyv->ParamByName(''k2'')->AsString = kcim;
frmData->qrAddKonyv->ParamByName(''k3'')->AsInteger = kszerzoazon;
frmData->qrAddKonyv->ParamByName(''k4'')->AsInteger = kpsz;
frmData->qrAddKonyv->ParamByName(''k5'')->AsInteger = kev;
frmData->qrAddKonyv->ParamByName(''k6'')->AsInteger = kpsz;*/
frmData->qrAddKonyv->ExecSQL();
}
Tehát a kikommentezett rész az ahogy alapból kellene működnie. A másik táblánál így tökéletesen működik.
A felső csak egy próba, hogy mi lehet baj, de így sem megy.
Egyszerűen én már nem tudom mit rontottam el.
Ja és az insert:
INSERT INTO konyvek (Isbn, Cim, Szerzoazon, Peldanyszam, Ev, Kolcsonpsz) VALUES (:k1, :k2, :k3, :k4, :k5, :k6)
Valaki légyszíves segítsen, jövő héten kell leadnom.
Aktív témák
Hirdetés
- Xiaomi Redmi Note 14 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 29WQ60A-B LED IPS Monitor! sRGB 99% / 5ms / 100Hz / FreeSync
- Honor 400 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 34WR50QC-B Monitor! VA 3440x1440 / 100Hz / FreeSync
- FÓLIÁS! LG 32MR50C-B ívelt VA Monitor! 100Hz / FreeSync / 5ms
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060Ti 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Újszerű Asus ExpertBook B1 B1500 - 15.6" FullHD IPS - i5-1235U - 16GB - 512GB SSD - Win11 - Garancia
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged