*Stew - SQLNCAg

version 2.3

----------------------------------------

ڎ
(TOC)

----------------------------------------

** StewƂ͉łH

SteẃAJDBCڑgăf[^x[XɃANZXc[łBJavaŏĂ܂B

** 2.0ŕύXꂽ@\
2.0ŎɕύXꂽ@\͈ȉ̂ƂłB
- Java1.4ȍ~ɑΉ (Java1.3͔Ή)
- f[^x[XiˑR[h̔r
- ڑݒ̉P
- sKvȏAPI̐
- GUI[h̓

GUI[hŕύXꂽ@\͈ȉ̂ƂłB
- sԍEԍ\@\̒ǉ
- e[u\[g@\̒ǉ
- e[uڕύX(̂悤Ɍ)@\̒ǉ
- ̓C^tF[X̉P

܂A\[XR[hׂď܂B1.0Ƃ̎xł̌݊͂قƂǂ܂B


** gp̒
ICmFĂB

*** pX[h̕ۑ
pX[h́AftHgł͂̂܂ܕۑ܂B̃pX[hۑȂꍇ́AÍ𗘗pł܂B
ڂ́A[#howtoconfigureconnectors:g-ڑݒ]QƂĂB

*** RlNVؒfrollbackȂ
disconnectR}hɂRlNVؒfƂArollback𔭍s܂BDBMSɂẮAgUNVIɃR~bgĂ܂Ƃ܂̂ŒӂKvłB
!o[W2.3AuؒfɎ[obNv@\p\ɂȂ܂B


** IC

WikiɂĒǉsĂ܂̂ŁA킹ĂpB
[http://argius.net/wiki/index.php?Stew%20tutorial]


----------------------------------------

** CXg[ɂ

JRE(Javas)1.4ȏオCXg[ĂKv܂Bi1.3ŎǵAÂo[W(1.0)gBj

StewsƁA".stew"fBNg쐬Aݒ̕ۑɎgp܂B".stew"fBNǵAftHgłHOMEfBNgiڍׁFVXevpeB"user.home"̃pXjɍ쐬܂BGUȈꍇ́ANfBNgɍ쐬܂B

*** UNIXnOS̏ꍇ

A[JCuKȃfBNgɓWJ܂Bł"/opt/Stew"Ƃ܂B
GCAXgꍇ́Aȉ̃R}hs܂B

	
alias stew="java -jar /opt/Stew/stew.jar"

GCAXgȂꍇ́Aȉ̃XNvgLqt@C"stew"ƂOŃpX̒ʂĂfBNgɕۑAs^ĂB

	
#!/bin/sh
java -jar /opt/Stew/stew.jar $*

R}hsĂ݂܂傤B"stew -v"Ńo[W񂪕\ꂽCXg[łB

*** Windows̏ꍇ

A[JCuKȃfBNgɓWJ܂Bł"C:\Program Files\Stew"Ƃ܂B

stew.exes܂Bstew.exegpƁAIGUI[hɂȂ܂B

stew.exegpȂꍇ́Aȉ̃R}hLqt@C"stew.bat"ƂOŃpX̒ʂĂfBNgɕۑĂBi"%*"XPA2000ANTłgȂ̂ŒӁBj

	
java -jar "C:\Program Files\Stew\stew.jar" %*

R}hsĂ݂܂傤B"stew -v"Ńo[W񂪕\ꂽCXg[łB

** ACXg[ɂ

CXg[Őݒ肵̑SĂƁA".stew"fBNg폜΃ACXg[łB

----------------------------------------

** g @howtouse@

Stewgpɂ́AJDBCڑ\ȃf[^x[XƁAJDBChCoKvłBJDBChCô̏ڍׂɂẮAef[^x[X̐ȂǂQƂĂB


*** ڑݒ @howtoconfigureconnectors@

CUȈꍇ́AN--editIvVw肷ƁAҏWvON܂B
GUȈꍇ́Aj["ڑݒ"sƁAҏW_CAOJ܂B

ꂼ̐ݒ荀ڂ͎̐̂ƂłB
:RlN^ID:connectR}hȂǂɓnIDłBp̂ݎwł܂B
:RlN^:vvgɕ\ڑłB͓ɂ܂B
:NXpX:JDBChCõNXpXw肵܂BJava-CLASSPATHIvVƓ`Ŏw肵܂B
:hCo:JDBChCoDriverNXw肵܂BGUȈꍇANXpXw肳Ă΁A"hCǒ"Ił܂B
:ڑURL:JDBCURL(DriverManager.getConnection(url)Ɏw肷urlƓ)w肵܂B
:[U:JDBCURLƓɎw肷郆[UIDw肵܂B
:pX[h:[UID̃pX[hw肵܂B
:Í:pX[h̕ۑ@I܂B"pX[h̕ۑɂ"QƂĂB
̏́A".stew/connectors.properties"ɕۑ܂B蓮ŕҏW邱Ƃł܂A̍ۂ͒ӂčsĂB


*** pX[h̕ۑɂ

pX[h͐ݒt@Cɕۑ邽߁Â܂ܕۑƓsꍇ܂BpX[h̕ۑ@́AÍI邱Ƃł܂B
:PlainTextPassword:iftHgjpX[ĥ܂ܕۑ܂B
:PbePassword:PBEÍgpăpX[hۑ܂B[#menuencryptionkey:j[-Íݒ]ňÍݒ肵AڑݒŃpX[h͂ĕۑƁAÍꂽԂŕۑ܂BNAēxÍݒ肵Ȃ΁ApX[hłȂȂ܂B

Ǝ̃pX[hÍǉ邱Ƃł܂BiڍׁFPasswordC^tF[X̎NXǉ܂Bj


*** Θb[h

ʏ̋Nł́AΘb[hł̑ƂȂ܂B
Θb[hł́AR}h͑҂ԂɂȂɃR}h͂AIƍĂуR}h͑҂ɂȂ܂B
FTPR}ĥ悤ȃvȎɎĂ邩܂B


*** s[h(One-Liner)

Stew̏s̓͂Ŋ܂B"stew"R}hݒ肵ĂƉ肷ƁÂ悤Ȍ`Ŏs܂B

	
$ stew <connector-id> <command>

sƁA<connector-id>̐ڑݒŐڑJnA̐ڑgpăR}hs܂BR}hsAڑؒfďI܂B
̃[hł́Apshell̐iႦ΁AChJ[h,_CNg Ȃǁj󂯂܂̂łӂB


----------------------------------------

** R}h(StewR}h)

gݍ݃R}h́AStew؂藣ƂłȂR}hłBiڍׁFCommandNX̃TuNXł͂ȂACommand.invoke\bhɒڏĂ鏈łBj
ȊÓAǉR}hƂĎĂ܂BiڍׁFCommandNX̃TuNXɂ鏈łBj

*** connect - f[^x[Xɐڑ (gݍ݃R}h)
> connect <connector-id>
> -c <connector-id>
\ߗpӂڑݒgpāAf[^x[Xɐڑ܂BΘb[hł́Adisconnect܂͋Iɐؒf܂ŁAڑێ܂B
łɐڑ̏ꍇ́A̐ڑؒfĂڑs܂B

*** disconnect - f[^x[XƂ̐ڑؒf (gݍ݃R}h)
> disconnect
> -d
f[^x[XƂ̐ڑؒf܂B

*** commit - gUNṼR~bg (gݍ݃R}h)
݂̃gUNVł̕ύXR~bg܂B
!R~bgۂ́AĕKvȃf[^폜Ȃ悤ӂĂB

*** rollback - gUNṼ[obN (gݍ݃R}h)
݂̃gUNVł̕ύX[obN܂B

*** exit -I (gݍ݃R}h)
> exit
StewI܂BmF҂͍s܂B


*** select - SELECT̎s
> <SQL-SELECT-STATEMENT>

*** update - UPDATE̎s
> <SQL-UPDATE-STATEMENT>

*** insert - INSERT̎s
> <SQL-INSERT-STATEMENT>

*** delete - DELETE̎s
> <SQL-DELETE-STATEMENT>

*** count - ̂ݕ\
> count <e[u> [<WHERE>]
w肵e[ǔ\܂BiڍׁF̃R}h SELECT COUNT(*) FROM <table-name> [<where-phrase>] Ɠrpk𔭍s܂Âݕ\܂Bj

	
> count test
12575  qbg܂B
>

*** load - t@Cs
> load [<SQLt@C> | <f[^t@C> <e[u> [ HEADER ]]
w肳ꂽt@CǂݍŁArpks܂B
p[^1̏ꍇ́At@CSQLƌȂĎs܂B
p[^2ȏ̏ꍇ́At@Cf[^t@CƌȂāAC|[gs܂Bt@C̊gqɂāAt@C`IɑI܂B
-.csv : CSV`
-.xml : XML`i`Fsrc/net/argius/stew/io/stew-table.dtdj
-LȊO : TAB؂eLXg`

*** import - t@C̃C|[g
> import [<f[^t@C> <e[u> [ HEADER ]]
t@Cf[^t@CƌȂāAC|[gs܂Bt@C̊gqɂāAt@C`IɑI܂B
-.csv : CSV`
-.xml : XML`i`Fsrc/net/argius/stew/io/stew-table.dtdj
-LȊO : TAB؂eLXg`

iڍׁF{Iɂ́Aload̃p[^2ȏw肵ƓłAStatement.addBatch()gp܂Bj

*** export - ʂ̃GNX|[g
> export <t@C> [ HEADER ] [command(select|find|report)]
w肵t@CɁAR}ȟʂo͂܂Bt@C̊gqɂāAt@C`IɑI܂B
-.htm,.html : HTML`
-.csv : CSV`
-.xml : XML`i`Fsrc/net/argius/stew/io/stew-table.dtdj
-LȊO : TAB؂eLXg`

*** time - sԌv
> time [<>] <SQL>
w肵SQLsA̎sԂvĕ\܂B񐔂w肳ꂽꍇ́A񐔕SQLJԂsāAuvvuρvuővuŏvWv܂B񐔂w肵Ȃꍇ́A1̎sԂ\܂B

	
> time select * from test
  s : 0.050 b
> time 100 select * from test
  v : 1.870 b
   : 0.018 b
  ő : 0.160 b
  ŏ : 0.000 b
>

*** find - e[u
> find <e[up^[> [<e[uʃp^[> [<XL[}p^[> [<J^Op^[> [ FULL ]]]]
QƉ\ȃe[üꗗ\܂B"p^["ƂL[[h܂ރp[^́AChJ[hi*,?jwł܂B

*** report - f[^x[X\
> report - | <e[u> [ PK | INDEX ]
ڑ̃RlNVɊւ\܂B
-inCtjw肳ꂽꍇ́AcaJDBChCô̖ƃo[WAڑ̃AhX\܂B
e[û݂w肳ꂽꍇ́Ae[u̗񂪕\܂B
e[uƃIvVw肳ꂽꍇ́APKw肷ƃvC}L[̈ꗗAINDEXw肷ƃCfbNXL[̈ꗗAꂼ\܂B

*** bind - oChϐɂSQL̎s
> bind <SQL>:<l̃J}؂胊Xg>
oChϐw肵SQLs܂BiڍׁFjava.sql.PreparedStatementɂsBj
":"ȍ~̃p[^́A󔒂p[^ƌȂ̂ŒӂĂB


** GUI[hEj[

GUI[h̃j[ɂĂ̐łB

*** t@C(F) - VEBhE(N) Ctrl-N
VEBhEJ܂BVEBhÉÃEBhEƂ͓Ɨڑŏs܂B

*** t@C(F) - (C) Ctrl-W
EBhE܂BRlNVڑ̏ꍇ́AmF_CAO\܂B
JĂEBhE1̏ꍇ́AI(X)ƓƂȂ܂B

*** t@C(F) - fBNgύX(D) Ctrl-D
݂̍ƃfBNgύX܂B̏́At@C̓ǂݍ݂⏑݂sR}hɉe܂B

*** t@C(F) - GNX|[g(E)
ʂt@Cɏo͂܂BexportR}hƂ͓ƗłBʂ\Ăꍇ̂ݗLłB

*** t@C(F) - I(X) Ctrl-Q
AvP[VI܂BmF_CAO\A"͂"IƏI܂B

*** ҏW(E) - ؂(T) Ctrl-X
I͈͂Nbv{[hɃRs[āAIꂽ폜܂Bi{IɁAʓIȃAvP[VƓłBj

*** ҏW(E) - Rs[(C) Ctrl + C
I͈͂Nbv{[hɃRs[܂Bi{IɁAʓIȃAvP[VƓłBj

*** ҏW(E) - \t(P) Ctrl-V
J[\ʒuɃNbv{[h̓e\t܂Bi{IɁAʓIȃAvP[VƓłBj

*** ҏW(E) - ׂđI(A) Ctrl-A
IĂ̈ie[u܂͓o͗jSIԂɂ܂B

*** ҏW(E) - ͗Ɉړ(G) Ctrl + G
R}h͂ł悤ɂ邽߁Ao̖͗ɃJ[\ړ܂B

*** ҏW(E) - bZ[W̃NA
o͗̃bZ[WNA܂B

*** \(V) - Xe[^X o[(B)
IꂽꍇAEBhẺɃXe[^Xo[\܂B
ݒ͕ۑ܂B

*** \(V) - ԍ\(C)
IꂽꍇAʂ̗񖼂ɔԍt܂B
!ݒ͕ۑ܂B

*** \(V) - 񕝂g(W) Ctrl + "."
ʂ̗񕝂ꂼ1.5{Ɋg債܂B

*** \(V) - 񕝂k(N) Ctrl + ","
ʂ̗񕝂ꂼ2/3ɏk܂B

*** \(V) - 񕝂𒲐(A) Ctrl+/
ʂ̗񕝂܂B́u񕝎vőIꂽ[hŒ܂B

*** \(V) - 񕝎(M)
ʕ\ɁAʂ̗񕝂郂[hI܂B
-Ȃ(N) : s܂B
-wb_(H) : wb_̃TCYɁAe񕝂܂B
-l(V) : ̒ōłl̃TCYɁAe񕝂܂B
-wb_ƒl(A) : wb_܂߂āA̒ōłl̃TCYɁAe񕝂܂B

ݒ͕ۑ܂B

*** \(V) - ŐVԂɍXV(R) F5
ʂ\ۂ̃NGĔsāAŐVԂ\܂B

*** \(V) - ő\̐ݒ(L)
ʗɕ\錏̍őlݒ肵܂B
ݒ͕ۑ܂B

*** \(V) - tHg(F) Ctrl + ";"
tHgύX_CAO\܂B
ݒ肷ƁAʗƃbZ[W̃tHgύX܂B

*** ڑ(C) - ڑ̎s(C) Ctrl + " "(space)
ڑXg\܂BڑXgŐڑڑIDI""ƁAconnectƓs܂B

*** ڑ(C) - ؒf(D)
ڑؒf܂BdisconnectR}hƓłB

*** ڑ(C) - Íݒ(K) @menuencryptionkey@
ڑݒ̃pX[hÍɎgp閧ݒ肵܂B

*** ڑ(C) - ڑݒ(E)
ڑݒ_CAO\܂B

*** R}h(M) - s(X) (shortcut : Ctrl + "M")
R}hs܂Bo͗ŃG^[L[̂Ɠʂ܂B

*** R}h(M) - O̗(P) (shortcut : Ctrl + "K")
R}h1k܂B

*** R}h(M) - ̗(N) (shortcut : Ctrl + "J")
R}h1i݂܂B

*** wv(H) - wv\(H)
wv\܂BiڍׁFJgfBNgMANUAL_jat@CKvłBj

*** wv(H) - Stew ɂ(A)
o[W_CAO\܂B


** GUI[hȆ

*** ʃe[u
R}hsƂɁAʂ\܂Bō͍sԍ\܂B񕝎ݒ肳Ă΁A񕝂Iɒ܂B
ZҏWƁAe[uɔf(UPDATE)܂B
sԍ"*"ɂȂĂs͕ۗsłBۗsɂẮAReLXgj[QƁB

*** o͗
R}h̓͂ƃbZ[W̏o͂AR}hĈ悤ȃC^[tFCXłB
G^[L[ƁAvvg疖܂łR}hƂĉ߂s܂BJ[\ɂȂꍇ́AJ[\Ɉړ܂BvvgO͕̕ҏWsƂȂĂ܂B

*** Xe[^Xo[
ÕR}hƂ̎sԂ\܂BsԂ́AtimeR}hƂ͈قȂAR}h̊JnI܂ł̏vԂƂȂ܂B

*** ReLXgj[
}EX̉ENbNɂÃRg[ɑ@\̃j[\܂B\郁j[éA͕ƂɈقȂ܂B
ȃj[͈ȉ̂ƂłB
:̗\[g(S): NbNiIĂł͖j\[g܂B𑱂ă\[gƁAtŃ\[g܂B
:IZ̒lRs[(C): IĂZA^u؂eLXg`ŃNbv{[hɑ܂B^usGXP[v܂B
:IZGXP[vtŃRs[(E): IĂZAGXP[vt̃^u؂eLXg`ŃNbv{[hɑ܂Blɉs܂܂ĂꍇłAڃXvbhV[gȂǂɓ\t邱Ƃł܂B
:񖼂Rs[(Y): ݕ\Ăwb_̒lA^u؂eLXg`ŃNbv{[hɑ܂Bi2.3Œǉj
:IZɒl\t(P): IZɁANbv{[h̃f[^\t(UPDATE)܂BI͈͊Õf[^͖܂Bf[^I͈͂傫ꍇłA\t͌JԂ܂B
:IZNullݒ(V): f[^^ɂ炸AIZNullݒ(UPDATE)܂B
:sVKǉ(N): \̍ŌɐVsǉ܂B̎_ł́Ae[uւ̔f͍s܂iۗsjBl͂Łu}mvsƁAe[u֔f܂B
:IsRs[}(I): \̍ŌɑIs̃Rs[ǉ܂B̎_ł́Ae[uւ̔f͍s܂iۗsjBl͂Łu}mvsƁAe[u֔f܂B
:Nbv{[hf[^}(O): Nbv{[h̃^u؂eLXgAe[uɘAđ}(INSERT)܂BG[̏ꍇ́AۗsƂȂ܂Bf͋IȊOł܂̂ŒӁB
:}m(F): ۗse[u֔f(INSERT)܂B
:Is폜(D): Is폜(DELETE)܂BsIĂĂsł܂Bۗs̏ꍇDELETE͍s܂B
COMMIT,ROLLBACK͎蓮łB


*** ݒۑ
ȉ̐ݒ肪AEBhEƂ(IƂł͂Ȃ)ɕۑAȍ~̃EBhE̐ݒƂĎgp܂B
-EBhËʒu
-EBhẼTCY
-o[̈ʒu
-tHg
-Xe[^Xo[\/\

** vpeB
Nɒlłp[^łBJavãVXevpeBiJava-DIvVjŎw肷邩Astew.propertiest@CɋLq܂B
"ݒl"́Aݒ肷lɂĂ̐łBݒl̃JbR̒l͊lłBJbRȂ̂͊l܂B

*** net.argius.stew.properties - vpeBt@C̏ꏊ
ݒlFt@C܂̓fBNg̃pX
stew.propertiest@CDIɌꏊw肵܂B
w肳ꂽpXt@C̏ꍇ́Ãt@Cstew.properties̑ɃvpeBt@CƂēǂݍ݂܂Bw肳ꂽpXfBNg̏ꍇ́Astew.propertieŝƂ݂Ȃ܂B
w肳Ȃꍇ́ANXpXAVXefBNg̏Ɍ܂Bꍇ̓vpeBt@ĈƂ݂Ȃ܂B

*** net.argius.stew.directory - ƃfBNg
ݒlFfBNgpX(JgfBNg)
R}hŎgpfBNg̊JñpXw肵܂BftHgVXefBNgƂ͈قȂ܂B

*** net.argius.stew.Launcher.class - Launcher̎w
ݒlFSCNX(net.argius.stew.StandardInputLauncher)
LauncheŕAAvP[V̋NÁAR}hsAo͂̊Ǘs@\łBł͂̃NXiڍׁFnet.argius.stew.LauncherC^tF[XĂKv܂Bjw肵܂BftHǵAWoLauncherłB

*** net.argius.stew.OutputProcessor.class - OutputProcessor
ݒlFSCNX(net.argius.stew.StandardOutputProcessor)
OutputProcessoŕAo͐s@\łBł͂̃NXiڍׁFnet.argius.stew.OutputProcessorC^tF[XĂKv܂jw肵܂BftHǵAWo͐łB

*** net.argius.stew.query.timeout - NG̃^CAEgl
ݒlFb(0)
R}h̃NGsɐݒ肷^CAEglw肵܂B0ȉ̓^CAEgwƂ݂Ȃ܂B
iڍׁFjava.sql.Statement#setQueryTimeoutɐݒ肷lBj

*** net.argius.stew.gui.ResultSetTableMonitor.timeout - ResultSetTableMonitor̃^CAEgl
ݒlFb(10)
GUǏʃe[uҏWۂɁAobNOEhŔsNGgp^CAEglłB

*** Loggerp
fobOpLoggerɊւvpeBłBvpeBt@Cɒڂ͎wł܂(-DIvVŎw\)B
-net.argius.logging true/false(false) Loggergp邩ǂw肵܂B
-net.argius.logging.class FQCN(StandardErrorOutputLogger) Logger̎NXw肵܂B
-net.argius.logging.level INFO/DEBUG/TRACE(INFO) Logger̃xw肵܂B

WLoggingAPI(java.util.logging)gpꍇ́Aȉ̃VXevpeBݒ肵ĂBLoggingAPÎ̐ݒ́AAPIhLgQƂĂB
	
 -Dnet.argius.logging=true
 -Dnet.argius.logging.class=net.argius.logging.LoggingApiWrapper

----------------------------------------

2009 argius
