DBGrid Editing

I hope to enter a value for particular field in a DBGrid, the problem is i can't enter(or edit) it when i run the program
i have set the properties dgEditing = True (in Options)
, but i still failed. Anyidea ??
chongkeng_woonAsked:
Who is Participating?
 
ITugayConnect With a Mentor Commented:
Hi chongkeng_woon,

check TQuery.RequestLive in runtime. There may be readonly resultset returned by TQuery (e.g. multiply tables join).

----
Igor.
0
 
ITugayCommented:
Hi chongkeng_woon,

if DBGrid connected to TQuery then set query's property RequstLive = true. In case you using TTable be sure that table's property ReadOnly = False;

-----
Igor.
0
 
VSFCommented:
Or u may try using a stringgrid!

VSF
www.victory.hpg.com.br
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
chongkeng_woonAuthor Commented:
Nope, it doesn't work. I set the
DBGrid connected to a DataSource1, while DataSource1 is connected(dataset) to a query, a query is connected to a database, i put RequestLive=True, but, no luck
0
 
chongkeng_woonAuthor Commented:
in runtime, requestlive is true, but tquery.canmodify is false, i think that why i got it readonly, but how to make the data editable when tquery.canmodify is false ????

0
 
ITugayCommented:
Hi,

can you show me your SQL statement?

----
Igor.
0
 
chongkeng_woonAuthor Commented:
Igor:
sql.add('select p.* from print p');
sql.add('join printtext pt');
sql.add('on p.number=pt.number');
sql.add('and p.prefix=pt.prefix');
sql.add('where pt.id = :id');
sql.add('and pt.personid = :personid');
thanks
0
 
ITugayCommented:
Ok, I see. I was right, it's multiply table join and can't be edited directly.

Take a look at Delphi help:
<<
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.
>>

Use TUpdateSQL to solve your problem.

Regards,
Igor.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.