Avatar billede cadamsen Nybegynder
28. januar 2002 - 16:10 Der er 5 kommentarer og
1 løsning

Problem med Select (Database)

Hej

jeg har problemer med Select kommandoen og 'OR'

Skriver jeg :

MainWindow.Query1.RequestLive:=false;
MainWindow.query1.sql.clear;

string1 := 'SELECT * FROM "TEST3.DBF" WHERE XKoor = (500) AND YKoor = 500';

MainWindow.Query1.sql.add(string1);
MainWindow.Query1.RequestLive:=true;
MainWindow.Query1.Active:=true;

Virker det.

Ændre jeg string1 (And til OR):

string1 := 'SELECT * FROM "TEST3.DBF" WHERE XKoor = (500) OR YKoor = 500';

Får jeg følgende fejl, når jeg vil ændre en værdi i databasen :

Cannot modyfi a read-only dataset.


Kan jeg ikke bruge 'OR' eller bruger jeg den forkert.

Det jeg ikke forstå er at min tabel, ændre sig rigtigt.

Tak

mvh

cadamsen
Avatar billede a_c Nybegynder
29. januar 2002 - 08:35 #1
Hvad mener du med at den ændrer sig rigtigt ?

Du laver en select - den ændrer vel ikke noget?
Din OR lader den til at acceptere. Den brokker sig jo
over at du prøver at ændre i et read-only dataset.

Mit umiddelbare bud må være at problemet er din requestlive.

Check lige disse ting klistret fra Delphi hjælpen:
...A True value for RequestLive is a request for an updatable result set. It does not guarantee that the database back-end will return an updatable result set. See the documentation for the specific database system used for the criteria needed for a live query result set. If the database cannot return an updatable result set, a read-only result set is returned instead. This is done automatically and usually without error. Some database systems may raise an exception on requests for live result sets that cannot be fulfilled. Check the success of the request by inspecting thr dataset component’s CanModify property.

og:
....All multi-table queries return read-only result sets. Other conditions may cause a query to return a read-only result set. For local tables (such as dBASE and Paradox), see the local SQL help file for rules governing live result sets (updatable queries). For other table types (such as InterBase, Oracle, and Sybase), consult the documentation for the specific database system.

a_c
Avatar billede cadamsen Nybegynder
29. januar 2002 - 08:50 #2
Hej A_C

Det jeg mener er at min tabel ændre sig rigtigt efter den select der laves.

Men benytter jeg OR, bliver den Read-Only.

Jeg har fundet følgende i hjælpen :

RequestLive    CanModify    Type of result set

False    False    Read-only result set
True--SELECT syntax meets requirements    True    Live result set
True--SELECT syntax does not meet requirements    False    Read-only result set
Avatar billede cadamsen Nybegynder
29. januar 2002 - 08:52 #3
Jeg prøver igen 

Hej A_C

Det jeg mener er at min tabel ændre sig rigtigt efter den select der laves.

Men benytter jeg OR, bliver den Read-Only.

Jeg har fundet følgende i hjælpen :

RequestLive                                CanModify    Type of result set

False                                        False    Read-only result set
True--SELECT syntax meets requirements        True    Live result set
True--SELECT syntax does not meet requirements False  Read-only result set

Det vil sige laves en forkert SELECT syntax bliver resultatet "ReadOnly". Derfor memer jeg at der er noget galt med Select'en.

/cadamsen
Avatar billede a_c Nybegynder
29. januar 2002 - 09:01 #4
Den her query brokker sql server sig ikke over
select * from test3 where xkoor=500 or ykoor=500

har lige kørt den. Men jeg ved så ikke om det er SQL server du kører.
a_c
Avatar billede cadamsen Nybegynder
29. januar 2002 - 09:18 #5
Jeg ved ikke hvilken SQL server jeg bruge, da koden er noget jeg har overtaget.

/cadamsen
Avatar billede cadamsen Nybegynder
06. februar 2002 - 14:05 #6
afslut
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester