-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestExecuteOption.java
More file actions
91 lines (74 loc) · 4.64 KB
/
Copy pathtestExecuteOption.java
File metadata and controls
91 lines (74 loc) · 4.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package mssql;
import gudusoft.gsqlparser.*;
import gudusoft.gsqlparser.nodes.TColumnDefinition;
import gudusoft.gsqlparser.nodes.mssql.TInlineResultSetDefinition;
import gudusoft.gsqlparser.nodes.mssql.TResultSetDefinition;
import gudusoft.gsqlparser.nodes.mssql.TResultSetsExecuteOption;
import gudusoft.gsqlparser.stmt.mssql.TMssqlExecute;
import junit.framework.TestCase;
public class testExecuteOption extends TestCase {
public void test1(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql);
sqlparser.sqltext = "EXEC Integration.GetMovementUpdates parameter1,parameter2 with recompile";
int result = sqlparser.parse();
assertTrue(result==0);
assertTrue(sqlparser.sqlstatements.get(0).sqlstatementtype == ESqlStatementType.sstmssqlexec);
TMssqlExecute execute = (TMssqlExecute)sqlparser.sqlstatements.get(0);
assertTrue(execute.getExecuteOption().getExecuteOptionKind() == EExecuteOptionKind.eokRecompile);
}
public void test2(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql);
sqlparser.sqltext = "EXEC Integration.GetMovementUpdates parameter1,parameter2 \n" +
"WITH RESULT SETS\n" +
"(\n" +
" (\n" +
" [Date Key] date,\n" +
" [WWI Stock Item Transaction ID] int,\n" +
" [WWI Invoice ID] int,\n" +
" [WWI Purchase Order ID] int,\n" +
" [Quantity] int,\n" +
" [WWI Stock Item ID] int,\n" +
" [WWI Customer ID] int,\n" +
" [WWI Supplier ID] int,\n" +
" [WWI Transaction Type ID] int,\n" +
" [Last Modified When] datetime2(7)\n" +
" )\n" +
");";
int result = sqlparser.parse();
assertTrue(result==0);
assertTrue(sqlparser.sqlstatements.get(0).sqlstatementtype == ESqlStatementType.sstmssqlexec);
TMssqlExecute execute = (TMssqlExecute)sqlparser.sqlstatements.get(0);
assertTrue(execute.getExecuteOption().getExecuteOptionKind() == EExecuteOptionKind.eokResultSets);
TResultSetsExecuteOption resultSetsExecuteOption = (TResultSetsExecuteOption) execute.getExecuteOption();
assertTrue(resultSetsExecuteOption.getResultSetsOptionKind() == EResultSetsOptionKind.rsoResultSetsDefined);
TResultSetDefinition resultSetDefinition = resultSetsExecuteOption.getDefinitions().get(0);
assertTrue(resultSetDefinition.getResultSetType() == EResultSetType.rstInline);
TInlineResultSetDefinition inlineResultSetDefinition = (TInlineResultSetDefinition)resultSetDefinition;
TColumnDefinition columnDefinition = inlineResultSetDefinition.getColumnDefinitionList().getColumn(0);
assertTrue(columnDefinition.getColumnName().toString().equalsIgnoreCase("[Date Key]"));
}
public void test3(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql);
sqlparser.sqltext = "EXEC Integration.GetMovementUpdates parameter1,parameter2 \n" +
"WITH RESULT SETS UNDEFINED\n";
int result = sqlparser.parse();
assertTrue(result==0);
assertTrue(sqlparser.sqlstatements.get(0).sqlstatementtype == ESqlStatementType.sstmssqlexec);
TMssqlExecute execute = (TMssqlExecute)sqlparser.sqlstatements.get(0);
assertTrue(execute.getExecuteOption().getExecuteOptionKind() == EExecuteOptionKind.eokResultSets);
TResultSetsExecuteOption resultSetsExecuteOption = (TResultSetsExecuteOption) execute.getExecuteOption();
assertTrue(resultSetsExecuteOption.getResultSetsOptionKind() == EResultSetsOptionKind.rsoUndefined);
}
public void test4(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql);
sqlparser.sqltext = "SP_EXECUTESQL N'SET FMTONLY ON SELECT * FROM [dbo].[insertbulk] '";
int result = sqlparser.parse();
assertTrue(result==0);
assertTrue(sqlparser.sqlstatements.get(0).sqlstatementtype == ESqlStatementType.sstmssqlexec);
TMssqlExecute execute = (TMssqlExecute)sqlparser.sqlstatements.get(0);
assertTrue(execute.getExecuteType() == EExecType.module_with_params);
assertTrue(execute.getModuleName().toString().equalsIgnoreCase("SP_EXECUTESQL"));
assertTrue(execute.getParameters().getExecParameter(0).toString().equalsIgnoreCase("N'SET FMTONLY ON SELECT * FROM [dbo].[insertbulk] '"));
assertTrue(execute.getParameters().getExecParameter(0).getParameterValue().toString().equalsIgnoreCase("N'SET FMTONLY ON SELECT * FROM [dbo].[insertbulk] '"));
}
}