Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dtp-dev] Execute multiple SQL statements one by one


Hi Dimiter,
        Sorry for the late reply. I was in a trip last week and just got the chance to look into the problem you encountered. This is a bug of the Generic SQL Parser, which regards the separater (; or GO) as part of the preceeding statement. I have fired a BZ 191721 for it and I'll ask the DTP-PMC's approval to checkin this BZ in RC3. Thanks!

Best Regards!

Max (Hui) Cao
Sybase Shanghai RD



"Dimitrov, Dimiter" <d.dimitrov@xxxxxxx>
Sent by: dtp-dev-bounces@xxxxxxxxxxx

2007-05-29 00:26

Please respond to
DTP development mailing list <dtp-dev@xxxxxxxxxxx>

To
"DTP development mailing list" <dtp-dev@xxxxxxxxxxx>
cc
Subject
RE: [dtp-dev] Execute multiple SQL statements one by one





Hi Hui,
 
Thank you for helpful direction. I estimated that I don’t need my own SQL parser (at least for now). I tried to separate SQL statements with ";"(which fortunately is default separator in MAXDB and this is registered in database definition too), but unfortunately GenericSQLParser didn’t split statements, separated with it. I tried to debug the process, but the code is obfuscated and this code is not clear to me (GenericSQLParser:1246):
 
      if (jj_2_14(2147483647)) {
        delimiter();
      } else {
 
The result is that the SQL Parser didn’t recognize the separators. This is an example snippet:
 
CREATE TABLE DD_ADDRESS (
                                ID INTEGER NOT NULL,
                                EGN TIMESTAMP,
                                STRING VARCHAR(255) UNICODE,
                                FAMILY VARCHAR(255) UNICODE,
                                NAME VARCHAR(255) UNICODE,
                                CITY VARCHAR(255) UNICODE,
                                NUMBER <UNKNOWN> NOT NULL
                );
ALTER TABLE DD_ADDRESS ADD CONSTRAINT DD_ADDRESS_PK PRIMARY KEY (ID)
 
Is the separator is used correct, or I have made mistake? I tried to type it on new row, to use GO instead of, but without any success. I tried to create JDBC connection to MAXDB and ORACLE in addition, but the behavior remained the same. The interesting is that this work for Derby, but the check is different (also unclear for me). Could you take a look and direct me what the problem is?
 
Best Regards,
Dimiter



From: dtp-dev-bounces@xxxxxxxxxxx [mailto:dtp-dev-bounces@xxxxxxxxxxx] On Behalf Of Hui.Cao@xxxxxxxxxx
Sent:
Thursday, 17. May 2007 04:34
To:
DTP development mailing list
Subject:
Re: [dtp-dev] Execute multiple SQL statements one by one



Hi Dimiter,

       You don't need to implement your own action. The "Execute All"/"Execute Selected" actions in SQL editor takes care of this issue for you by separating the SQL statements using statement terminators defined by SQLParser. The default terminators are "GO" and ";" which are defined in GenericeSQLParser. If it does not work for MAXDB, you can override it in your MAXDB parser. To hook your parser into the framework, here are the steps:

1. provide a
org.eclipse.datatools.sqltools.editor.core.dbConfigurations extension
2. return your parser in your MAXDBConfiguration.getSQLService().getSQLParser() method


For other extensible behaviors, please refer to SQLDevToolsTutorial.pdf located in the org.eclipse.datatools.sqltools/documents directory of the datatools cvs repository.

Best Regards!

Max (Hui) Cao
Sybase Shanghai RD


"Dimitrov, Dimiter" <d.dimitrov@xxxxxxx>
Sent by: dtp-dev-bounces@xxxxxxxxxxx

2007-05-16 23:52

Please respond to
DTP development mailing list <dtp-dev@xxxxxxxxxxx>


To
"DTP development mailing list" <dtp-dev@xxxxxxxxxxx>
cc
Subject
[dtp-dev] Execute multiple SQL statements one by one






Hi there,

        I want to ask a question related to the execution of SQL statements from org.eclipse.datatools.sqltools.sqlscrapbook.SQLScrapbookEditor. I had to execute multiple statements against MAXDB, but unfortunately MAXDB does not have a possibility to execute multiple statements in one JDBC call. So the solution is to execute the multiple statements one by one (but transparent for the user �C not in the way, in which this functionality is realized in Outline view). So my question is whether is possible to implement myself this action (Execute All) depends on the connection and if yes how to do that.

Thank you in advance,
Dimiter

_______________________________________________
dtp-dev mailing list
dtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dtp-dev_______________________________________________
dtp-dev mailing list
dtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dtp-dev


Back to the top