[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.dtp] Re: Generating a DDL from java
|
Hi Hayden...
Sorry this took a bit. Got tied up at the end of last week.
So... I'm attaching a plug-in that contributes an action to the Data Source
Explorer on a connection profile. If you run the action on a connected
profile (like on a connected Derby profile), it'll save out an xmi file to
c:\<mydbname>\cache.xmi.
This code is very similar to the Save/Work Offline actions in the DSE
currently.
What does this get you? Well, the XMI file conforms to the SQL model, which
is an EMF model in the DTP Modelbase project. You can open the XMI file in
an EMF editor to poke around at it. And you can use the EMF API to poke
around in it code-wise.
That should allow you to get the info you need to create your DDL.
Now executing the DDL via API is another question... Has anybody tried that?
If not, I can poke around some more to see if I can figure it out.
Hope this helps!
--Fitz
"Hayden Marchant" <hayden@xxxxxxxxxx> wrote in message
news:a3c17af3d4c6fde4ca29dd08894eea99$1@xxxxxxxxxxxxxxxxxx
>I need to be able to generate DDL and execute them against DB connections,
> based on a data-model (tables & columns) that I will be reading from a
> file. At this stage I am not sure of the file format that I will use.
>
> Can someone point me to the relevant classes, preferably with some sample
> code to give me a head start.
>
> Also, if there is a pre-existing format for the datamodel that is tightly
> integrated with the DTP project (e.g. EMF model) in which they can be
> saved, with a relevant UI tool for editing the data-model, that would also
> be fantastic
>
> As an API user, I found it pretty tricky finding relevant documentation on
> the DTP APIs - I realise that most usage of DTP is done through other
> Eclipse projects, but I am a little stuck at the moment.
>
> Thanks,
> Hayden
>
begin 666 ddl_api_example_action_project.zip
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
M\W3KF]AZ%WWRL80F@>OHE.]WT#R/#OEV&\W];4O8(W 'L7DTA>^W$1MH;5]
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
ML9,I4:87B#!OHH5\>(&]2#XHRQKK7L-+V1V^;67R=M0T%)H!12;D--U*$K?
MQN-2YM(P-4Q4)/*$Y(.,2[P[C.\DEH+[+4W_Z)6V/:2 PY,0MPZ?KD=^]J?0
M,:RE5Y!.RPRN`8QPT'RO,() +1(H\7EO-- IX!2*Z 0STDI90F?'WY S0O[E
MVI'%L$#H\Z#B"X7GPDRX'<P2=4)!<"K0LG0F=8Z"U;@>*//F\5&#/K466/+3
MK03]PG#B@.L&(&[E3Y(5/-Y2$,,4[QE,=XPB: 72S,VX* A.4JL/^8H$-.B!
MM6"\(Q\';UI%DF=8UL[NJ;SC:4/>J>7*077 ?VDMV?E)18/%IS=7?./PK$HA
MKH"(SB[.R0/P[$/W*Q5[R0UNKIQ=&G!")H<5A.BL_3@C[FR>B$R4Y]80JN)U
M6%&ZUV6:D(!=B"N<C,,"IL2P%<;EA"F;W6PP'P"L1(XHQR8[MT'#4O'=!M')
M?5A;Y8F.2YZBA+\F\1,TQ@'-TA&@D JILK+BD&ED66G]OQ 67@xxxxx:?,65
MRQ5I]C<%9U7C;GR$8-Z6KDH90:ER#B&TKHSOR"<*(JB91^2GH6 ;_ =02P<(
M_K41[_0%``"I$ ``4$L!`A0`% `(``@`ME+U.-4<G-*E````,P$``"4`````
M`````````````````&]R9RYE8VQI<'-E+F1A=&%T;V]L<RYP;&%Y+RYC;&%S
M<W!A=&A02P$"% `4``@`" "V4O4XMMY7=.H```"O`@``(P``````````````
M``#X````;W)G+F5C;&EP<V4N9&%T871O;VQS+G!L87DO+G!R;VIE8W102P$"
M% `4``@`" "V4O4X)>^%6.0```!H`@``+P`````````````````S`@``;W)G
M+F5C;&EP<V4N9&%T871O;VQS+G!L87DO345402U)3D8O34%.249%4U0N3490
M2P$"% `4``@`" "V4O4X;=VG*5("``"G! ``20````````````````!T`P``
M;W)G+F5C;&EP<V4N9&%T871O;VQS+G!L87DO8FEN+V]R9R]E8VQI<'-E+V1A
M=&%T;V]L<R]P;&%Y+T%C=&EV871O<BYC;&%S<U!+`0(4`!0`" `(`+92]3B6
M:1W-$0@``( 2``!E`````````````````#T&``!O<F<N96-L:7!S92YD871A
M=&]O;',N<&QA>2]B:6XO;W)G+V5C;&EP<V4O9&%T871O;VQS+W!L87DO<&]P
M=7 O86-T:6]N<R]0;&%Y5VET:$1$3%9I84%024%C=&EO;BYC;&%S<U!+`0(4
M`!0`" `(`+92]3B=CRXT2@```&T````K`````````````````.$.``!O<F<N
M96-L:7!S92YD871A=&]O;',N<&QA>2]B=6EL9"YP<F]P97)T:65S4$L!`A0`
M% `(``@`ME+U.%ZRB7!@`0``K@,``"4`````````````````A \``&]R9RYE
M8VQI<'-E+F1A=&%T;V]L<RYP;&%Y+W!L=6=I;BYX;6Q02P$"% `4``@`" "V
M4O4XVF%3F@H"``"-!0``2 `````````````````W$0``;W)G+F5C;&EP<V4N
M9&%T871O;VQS+G!L87DO<W)C+V]R9R]E8VQI<'-E+V1A=&%T;V]L<R]P;&%Y
M+T%C=&EV871O<BYJ879A4$L!`A0`% `(``@`ME+U./ZU$>_T!0``J1 ``&0`
M````````````````MQ,``&]R9RYE8VQI<'-E+F1A=&%T;V]L<RYP;&%Y+W-R
M8R]O<F<O96-L:7!S92]D871A=&]O;',O<&QA>2]P;W!U<"]A8W1I;VYS+U!L
M87E7:71H1$1,5FEA05!)06-T:6]N+FIA=F%02P4&``````D`"0"_`P``/1H`
#````
`
end