|
| Fejlmelding ved DsInsert i database Fra : Kurt |
Dato : 21-02-05 16:52 |
|
Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte en ny
record i.
Koden er således:
1 EjendomsForm.tbEjendom.Open;
2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
EjendomsForm.tbEjendom.Insert;
3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
....
....
9 EjendomsForm.tbEjendom.Post;
Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
"Expression expected but nothing found."
Hvad har jeg gjort galt?
Mvh Kurt
| |
Kurt (21-02-2005)
| Kommentar Fra : Kurt |
Dato : 21-02-05 20:08 |
|
"Kurt" <kurt_g@guldbaek.net> wrote in message
news:421a039b$0$231$edfadb0f@dread11.news.tele.dk...
> Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
> Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte en
ny
> record i.
> Koden er således:
>
> 1 EjendomsForm.tbEjendom.Open;
> 2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
> EjendomsForm.tbEjendom.Insert;
> 3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
> ...
> ...
> 9 EjendomsForm.tbEjendom.Post;
>
> Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
> "Expression expected but nothing found."
>
> Hvad har jeg gjort galt?
>
> Mvh Kurt
>
Jeg er kommet frem til, at det må være "EjendomsForm.tbEjendom.Insert", der
nok kræver parametre om hvad der skal indsættes.
Jeg formodede at den satte databasen i Insertmode. Hvad hedder den korrekte
komando dertil?
/Kurt
| |
Harald (21-02-2005)
| Kommentar Fra : Harald |
Dato : 21-02-05 21:55 |
|
"Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
news:421a3187$0$215$edfadb0f@dread11.news.tele.dk...
> "Kurt" <kurt_g@guldbaek.net> wrote in message
> news:421a039b$0$231$edfadb0f@dread11.news.tele.dk...
>> Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
>> Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte en
> ny
>> record i.
>> Koden er således:
>>
>> 1 EjendomsForm.tbEjendom.Open;
>> 2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
>> EjendomsForm.tbEjendom.Insert;
>> 3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
>> ...
>> ...
>> 9 EjendomsForm.tbEjendom.Post;
>>
>> Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
>> "Expression expected but nothing found."
>>
>> Hvad har jeg gjort galt?
>>
>> Mvh Kurt
>>
> Jeg er kommet frem til, at det må være "EjendomsForm.tbEjendom.Insert",
> der
> nok kræver parametre om hvad der skal indsættes.
> Jeg formodede at den satte databasen i Insertmode. Hvad hedder den
> korrekte
> komando dertil?
Insert kræver ingen parametre, hvis du bruger debuggeren kan du se nøjagtig
hvor fejlen kommer.
/HK
| |
Kurt Guldbæk (21-02-2005)
| Kommentar Fra : Kurt Guldbæk |
Dato : 21-02-05 22:02 |
|
"Harald" <nomail@noname.dk> skrev i en meddelelse
news:421a4a9b$0$33687$edfadb0f@dread16.news.tele.dk...
> "Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
> news:421a3187$0$215$edfadb0f@dread11.news.tele.dk...
>> "Kurt" <kurt_g@guldbaek.net> wrote in message
>> news:421a039b$0$231$edfadb0f@dread11.news.tele.dk...
>>> Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
>>> Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte
>>> en
>> ny
>>> record i.
>>> Koden er således:
>>>
>>> 1 EjendomsForm.tbEjendom.Open;
>>> 2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
>>> EjendomsForm.tbEjendom.Insert;
>>> 3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
>>> ...
>>> ...
>>> 9 EjendomsForm.tbEjendom.Post;
>>>
>>> Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
>>> "Expression expected but nothing found."
>>>
>>> Hvad har jeg gjort galt?
>>>
>>> Mvh Kurt
>>>
>> Jeg er kommet frem til, at det må være "EjendomsForm.tbEjendom.Insert",
>> der
>> nok kræver parametre om hvad der skal indsættes.
>> Jeg formodede at den satte databasen i Insertmode. Hvad hedder den
>> korrekte
>> komando dertil?
>
> Insert kræver ingen parametre, hvis du bruger debuggeren kan du se
> nøjagtig hvor fejlen kommer.
Vil det sige, at de viste linjer ikke skulle give den beskrevne fejl?
> /HK
Det er med debuggeren, at jeg har fundet frem til, at det er 2. linje, der
giver fejlen.
/Kurt
| |
Harald (21-02-2005)
| Kommentar Fra : Harald |
Dato : 21-02-05 22:07 |
|
"Kurt Guldbæk" <kurt_g@guldbaek.net> skrev i en meddelelse
news:421a4c24$0$29276$14726298@news.sunsite.dk...
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:421a4a9b$0$33687$edfadb0f@dread16.news.tele.dk...
>> "Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
>> news:421a3187$0$215$edfadb0f@dread11.news.tele.dk...
>>> "Kurt" <kurt_g@guldbaek.net> wrote in message
>>> news:421a039b$0$231$edfadb0f@dread11.news.tele.dk...
>>>> Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
>>>> Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte
>>>> en
>>> ny
>>>> record i.
>>>> Koden er således:
>>>>
>>>> 1 EjendomsForm.tbEjendom.Open;
>>>> 2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
>>>> EjendomsForm.tbEjendom.Insert;
>>>> 3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
>>>> ...
>>>> ...
>>>> 9 EjendomsForm.tbEjendom.Post;
>>>>
>>>> Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
>>>> "Expression expected but nothing found."
>>>>
>>>> Hvad har jeg gjort galt?
>>>>
>>>> Mvh Kurt
>>>>
>>> Jeg er kommet frem til, at det må være "EjendomsForm.tbEjendom.Insert",
>>> der
>>> nok kræver parametre om hvad der skal indsættes.
>>> Jeg formodede at den satte databasen i Insertmode. Hvad hedder den
>>> korrekte
>>> komando dertil?
>>
>> Insert kræver ingen parametre, hvis du bruger debuggeren kan du se
>> nøjagtig hvor fejlen kommer.
>
> Vil det sige, at de viste linjer ikke skulle give den beskrevne fejl?
Jeg har lige prøvet her og fik ingen fejl. Hvilken database bruger du?
>
>> /HK
>
> Det er med debuggeren, at jeg har fundet frem til, at det er 2. linje, der
> giver fejlen.
Ja men er det (EjendomsForm.tbEjendom.State in [dsInsert]) eller
EjendomsForm.tbEjendom.Insert der giver fejlen?
/HK
| |
Kurt Guldbæk (21-02-2005)
| Kommentar Fra : Kurt Guldbæk |
Dato : 21-02-05 22:26 |
|
"Harald" <nomail@noname.dk> skrev i en meddelelse
news:421a4d7a$0$33675$edfadb0f@dread16.news.tele.dk...
> "Kurt Guldbæk" <kurt_g@guldbaek.net> skrev i en meddelelse
> news:421a4c24$0$29276$14726298@news.sunsite.dk...
>> "Harald" <nomail@noname.dk> skrev i en meddelelse
>> news:421a4a9b$0$33687$edfadb0f@dread16.news.tele.dk...
>>> "Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
>>> news:421a3187$0$215$edfadb0f@dread11.news.tele.dk...
>>>> "Kurt" <kurt_g@guldbaek.net> wrote in message
>>>> news:421a039b$0$231$edfadb0f@dread11.news.tele.dk...
>>>>> Jeg får en fejlmelding, som jeg ikke forstår årsagen til:
>>>>> Jeg har en database EjendomsForm.tbEjendom, som jeg gerne vil indsætte
>>>>> en
>>>> ny
>>>>> record i.
>>>>> Koden er således:
>>>>>
>>>>> 1 EjendomsForm.tbEjendom.Open;
>>>>> 2 If not (EjendomsForm.tbEjendom.State in [dsInsert]) then
>>>>> EjendomsForm.tbEjendom.Insert;
>>>>> 3 EjendomsForm.tbEjendom.FieldByName('Ejerlav').Text := E_LavsNr;
>>>>> ...
>>>>> ...
>>>>> 9 EjendomsForm.tbEjendom.Post;
>>>>>
>>>>> Men ved hver kørsel af linie 2 får jeg fejlmeldingen:
>>>>> "Expression expected but nothing found."
>>>>>
>>>>> Hvad har jeg gjort galt?
>>>>>
>>>>> Mvh Kurt
>>>>>
>>>> Jeg er kommet frem til, at det må være "EjendomsForm.tbEjendom.Insert",
>>>> der
>>>> nok kræver parametre om hvad der skal indsættes.
>>>> Jeg formodede at den satte databasen i Insertmode. Hvad hedder den
>>>> korrekte
>>>> komando dertil?
>>>
>>> Insert kræver ingen parametre, hvis du bruger debuggeren kan du se
>>> nøjagtig hvor fejlen kommer.
>>
>> Vil det sige, at de viste linjer ikke skulle give den beskrevne fejl?
>
> Jeg har lige prøvet her og fik ingen fejl. Hvilken database bruger du?
Pt bruger jeg FlashFiler 2.13
>>> /HK
>>
>> Det er med debuggeren, at jeg har fundet frem til, at det er 2. linje,
>> der giver fejlen.
>
> Ja men er det (EjendomsForm.tbEjendom.State in [dsInsert]) eller
> EjendomsForm.tbEjendom.Insert der giver fejlen?
>
> /HK
Det skal jeg lige checke, de er i øjeblikket på samme linie!
/Kurt
| |
Kurt Guldbæk (21-02-2005)
| Kommentar Fra : Kurt Guldbæk |
Dato : 21-02-05 22:43 |
|
klippet
> Ja men er det (EjendomsForm.tbEjendom.State in [dsInsert]) eller
> EjendomsForm.tbEjendom.Insert der giver fejlen?
>
> /HK
Det er i den sidste linie: EjendomsForm.tbEjendom.Insert
Jeg har med F7 prøvet at gå ned i Db-unit'en (D5). Fejlen opstår i
procedure TDataSet.EndInsertAppend;
begin
SetState(dsInsert);
try
DoOnNewRecord;
except
UpdateCursorPos;
FreeFieldBuffers;
SetState(dsBrowse);
Resync([]);
raise;
end;
FModified := False;
DataEvent(deDataSetChange, 0); ---------HER OPSTÅR FEJLEN---------
DoAfterInsert;
DoAfterScroll;
end;
Programmet har sikket været nede i nogle FlashFiler-rutiner inden, så det
kan være her problemerne opstår (når du ikke har problemer)!
/Kurt
| |
Thor (21-02-2005)
| Kommentar Fra : Thor |
Dato : 21-02-05 23:44 |
|
> FModified := False;
> DataEvent(deDataSetChange, 0); ---------HER OPSTÅR FEJLEN---------
> DoAfterInsert;
Det ser ud til, at du har lavet en event f.eks afterscoll eller lignende,
hvor fejlen opstår.
Har du kørt med step into i debuggeren?
mvh Thomas Riedel
| |
Kurt Guldbæk (21-02-2005)
| Kommentar Fra : Kurt Guldbæk |
Dato : 21-02-05 23:51 |
|
"Thor" <thor@thor.thor> skrev i en meddelelse
news:cvdo54$1pl1$1@news.cybercity.dk...
>> FModified := False;
>> DataEvent(deDataSetChange, 0); ---------HER OPSTÅR FEJLEN---------
>> DoAfterInsert;
>
> Det ser ud til, at du har lavet en event f.eks afterscoll eller lignende,
> hvor fejlen opstår.
> Har du kørt med step into i debuggeren?
>
> mvh Thomas Riedel
Jeg bruger nogle Breakpoint på nogle få linjer og derefter enten F7, F8
eller F9 for at komme videre.
Et par gange har jeg også brugt F4, men ikke normalt!
/Kurt
| |
Thor (22-02-2005)
| Kommentar Fra : Thor |
Dato : 22-02-05 00:25 |
|
>
> Jeg bruger nogle Breakpoint på nogle få linjer og derefter enten F7, F8
> eller F9 for at komme videre.
> Et par gange har jeg også brugt F4, men ikke normalt!
> /Kurt
Prøv med F7 lige før fejlen opstår!
mvh Thomas
| |
Kurt Guldbæk (22-02-2005)
| Kommentar Fra : Kurt Guldbæk |
Dato : 22-02-05 00:07 |
|
"Thor" <thor@thor.thor> skrev i en meddelelse
news:cvdo54$1pl1$1@news.cybercity.dk...
>> FModified := False;
>> DataEvent(deDataSetChange, 0); ---------HER OPSTÅR FEJLEN---------
>> DoAfterInsert;
>
> Det ser ud til, at du har lavet en event f.eks afterscoll eller lignende,
> hvor fejlen opstår.
> Har du kørt med step into i debuggeren?
>
> mvh Thomas Riedel
Jeg tror, at du har ret.
Tabellen var jo på en anden form, hvor der er forskellige events knyttet til
den. Da jeg lavede en lokal tabel på 'denne' form forsvandt fejlen!
Mange tak for hjælpe til jer begge.
/Kurt
| |
|
|