[状况:学习者]
我试图实现参数化查询,但我遇到了问题.Jonathan Sampson最近暗示如何做到这一点(#2286115),但我没有正确地遵循他的建议.这是我的剧本
$cGrade = "grade" ;
include_once ( "db_login.php" ) ;
$sql = "SELECT last_name AS last_name
, first_name AS first_name
, grade AS gr
, ethnic AS eth
, sex AS sex
, student_id AS id_num
, reason AS reason
, mon_init AS since
FROM t_tims0809
WHERE tag <> '' AND
tag IS NOT NULL AND
schcode = {$schcode}
ORDER
BY ('%s') " ;
$qResult = mysql_query ( sprintf ( $sql, $cGrade ) or ( "Error: " . …Run Code Online (Sandbox Code Playgroud) 我想在Hudson中设置一个参数化构建,只需要一个参数 - 要创建的构建类型(QA,Stage,Production).但是,每个构建都需要设置几个不同的环境变量.像(伪代码)的东西:
if ${CONFIG} == "QA" then
${SVN_PATH} = "branches/dev"
${BUILD_CONFIG} = "Debug"
# more environment variables...
else if ${CONFIG} == "Production" then
${SVN_PATH} = "trunk"
${BUILD_CONFIG} = "Release"
# more environment variables...
else # more build configurations...
end if
Run Code Online (Sandbox Code Playgroud)
我们的构建中有无数的步骤 - 从subversion中提取,然后运行MSBuild命令,DOS批处理文件和Powershell脚本的组合.
我们通常从Hudson接口安排我们的构建,并且我希望参数条目尽可能地防止出现.
有没有办法做到这一点?
好的,我是参数化查询的菜鸟.我理解为什么你应该使用它们,但除了我找不到任何显示正确方法的资源或至少一个显示实际工作方式的资源.
所以我的问题是关于我的代码是否正确.它编译并运行得很好,但它在gridview中完全没有返回.
protected void SearchButton_Click(object sender, EventArgs e)
{
string searchBoxValue = SearchBox.Text;
string columnNameValue = ColumnName.SelectedValue;
columnNameValue.ToLower();
SqlCommand searchCommand = new SqlCommand();
searchCommand.Connection = connection;
searchCommand.CommandText = "select firstname AS FirstName,lastname AS LastName, zipcode as ZipCode, phone AS Phone, email AS Email, cancersurvivor AS CancerSurvivor, ethnicity AS Ethnicity from registrants where @columnname = @searchterm";
SqlParameter columnParam = new SqlParameter();
columnParam.ParameterName = "@columnname";
columnParam.Value = columnNameValue;
SqlParameter searchBoxParam = new SqlParameter();
searchBoxParam.ParameterName = "@searchterm";
searchBoxParam.Value = searchBoxValue;
searchCommand.Parameters.Add(columnParam);
searchCommand.Parameters.Add(searchBoxParam);
UpdateTable(searchCommand); …Run Code Online (Sandbox Code Playgroud) 例如1
string sql="select * from A where time>=:begin_time and time<=:end_time";
DateTime bt = new DateTime(2013, 04, 19);
DateTime et = new DateTime(2013, 04, 20, 15, 0, 0);
conn.Query<Object>(sql,new {begin_time=bt,end_time=et}).ToList()
Run Code Online (Sandbox Code Playgroud)
查询速度慢,时间为00:00:02.2142132
例如2
string sql="select * from A where time>=to_date(:begin_time,'yyyy-mm-dd hh24:mi:ss') and time<to_date=(:end_time,'yyyy-mm-dd hh24:mi:ss')";
conn.Query<Object>(sql,new {begin_time="2013-04-19 0:00:00",end_time="2013-04-20 15:00:00"}).ToList()
Run Code Online (Sandbox Code Playgroud)
查询速度很快,时间是00:00:00.4604229
以下是一个新的测试用例。数据库中的所有测试记录数为 39。
group1:使用 Oracle.ManagedDataAccess
测试1:00:00:01.9456767。使用 dapper 并且 datetime 是 datetime 类型(eg1. :begin_time)
测试2:00:00:00.6667549。使用 dapper 并且 datetime 是字符串类型(例如2.to_date(:begin_time,format) )
测试3:00:00:01.8552286。使用 ado.net/OracleCommand/OracleDataAdapter 并且 datetime 是 datetime 类型(eg1. :begin_time)
测试4:00:00:00.0592419。使用 ado.net/OracleCommand/OracleDataAdapter 并且日期时间是字符串类型(例如2.to_date(:begin_time,format))
group2:使用 System.Data.OracleClient
测试5:00:00:00.0184799。使用 dapper …
我试图设置在4.11的JUnit一个参数测试,其生成单一的参数.但是,此参数必须是数组本身.
以下代码片段的预期行为test()是在第一次运行中arguments保存数组{"test1", "test2"}并{"test3", "test4"}在第二次运行中保存数组时运行两次.
@RunWith(Parameterized.class)
public class Tester {
@Parameter
private String[] arguments;
@Parameters
public static Iterable<Object[]> data() {
return Arrays.asList(
new Object[][]{
{new String[] {"test1","test2"}},
{new String[] {"test3","test4"}}
}
);
}
@Test
public void test() {
fail();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我执行测试时,SlowCheckMemberAccess会抛出异常.Google没有针对此类问题提供任何结果.
任何人都可以解释这里出了什么问题吗?
未经过滤的JUnit跟踪是:
java.lang.IllegalAccessException: Class org.junit.runners.Parameterized$TestClassRunnerForParameters can not access a member of class org.mafagafogigante.dungeon.entity.creatures.Tester with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.lang.reflect.Field.set(Unknown …Run Code Online (Sandbox Code Playgroud) 我正在尝试编译这个程序.它适用于2个字符串(姓名,电话号码)但不适用于3个字符串(姓名,电话号码和性别).
代码(不工作代码 - 3个字符串(姓名,电话号码和性别))
import java.util.Map;
import java.util.TreeMap;
public class Ann {
String name, phone;
public Ann() {
}
public static void testMap() {
Map<String, String, String> theMap = new TreeMap<String, String,String>();
// new HashMap<K,V>(); could also be used
theMap.put("Roger M", "090-997-2918", "Male");
theMap.put("Jane M", "090-997-1987", "FeMale");
theMap.put("Stacy K", "090-997-9188", "FeMale");
theMap.put("Gary G", "201-119-8765", "Male");
theMap.put("Jane M", "090-233-0000", "FeMale");
System.out.println("Testing TreeMap and Map");
System.out.print("Stacy K has phone ");
System.out.print(theMap.get("Stacy K"));
System.out.print("\n");
System.out.print("Jane M has phone ");
System.out.print(theMap.get("Jane …Run Code Online (Sandbox Code Playgroud) 我有一个不是特别复杂的SQL查询,可以在Server Mgt Studio中运行时返回我想要的内容,但是当我在C#中运行它时,DataGrid会出现空白.(是的 - 主机名已经消毒,我不仅仅有一个糟糕的命名方案.)
希望眼睛比我更敏锐的人可以解决这个问题.
SQL查询:
SELECT MachineName, InstanceName, CounterName,
AVG(CASE WHEN CounterValue > 0 THENCounterValue ELSE NULL END)/1024 as 'Mean (KB)'
FROM DataCollector.dbo.JobCounterSummary
WHERE
((MachineName = '\\HOST001' AND (InstanceName = 'D:' OR InstanceName = 'E:')) OR
(MachineName = '\\HOST002' AND (InstanceName = 'E:' OR InstanceName = 'G:')) OR
(MachineName = '\\HOST003' AND (InstanceName = 'G:' OR InstanceName = 'H:')) OR
(MachineName = '\\HOST004' AND (InstanceName = 'G:' OR InstanceName = 'H:') OR
(MachineName = '\\HOST005' AND InstanceName = …Run Code Online (Sandbox Code Playgroud) 从Scala API,我得到了以下示例,它不能编译;
scala> def arr[T] = new Array[T](0)
<console>:10: error: cannot find class manifest for element type T
def arr[T] = new Array[T](0)
^
Run Code Online (Sandbox Code Playgroud)
我想知道,为什么它不编译(Scala API没有解释错误)?这不仅仅是一个普通的参数化方法吗?为什么编译器会抱怨它?
我需要在 Ada 中创建一个参数化任务,我得到的错误是:判别式必须具有离散或访问类型。
这是我的代码:
task type FEP_Con(Port_Num : Port_Name) is
entry Start;
end FEP_Con;
type FEP_Con_acc is access FEP_Con;
task body FEP_Con is
S_Port : Serial_Port;
Buffer : Ada.Streams.Stream_Element_Array(1..1024);
Last : Ada.Streams.Stream_Element_Offset;
Response_Str : Unbounded_String;
--cPort : Port_Name := "";
begin
accept Start;
Run Code Online (Sandbox Code Playgroud)
提前致谢。
在尝试使用 JUnit 5 的参数化功能时,我偶然发现了一个初始化错误。
@ExtendWith(MockitoExtension.class)
@RunWith(Parameterized.class)
public class ServiceTest {
@InjectMocks
Service service;
private static Stream<Arguments> getArguments() {
return Stream.of(
Arguments.of("something", "result1", "result2"),
Arguments.of("another", "result3", "result4")
);
}
@ParameterizedTest
@MethodSource("getArguments")
@DisplayName("Test parseEndpoint method")
void testMethod(String arg1, String result1, String result2) {
final String[] strings = service.doSomething(arg1);
assertEquals(result1, strings[0]);
assertEquals(result2, strings[1]);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以看到我的测试正在由参数化引擎和 JUnit Vintage 单元运行。这里的问题是如何禁用这样的类只由 Parameterized.class 运行?!
我有一个这样的查询
SELECT ID,REF_ID,BATCHNO FROM reporttbl
where POSTING_DT >= '06/01/2020' and POSTING_DT <= '06/30/2020'
Run Code Online (Sandbox Code Playgroud)
我每个月都需要它,所以我想把它放在一个视图中,但是随着日期每个月都在变化,如果有一个日期参数可以在调用它时传递给视图,那就太好了。有什么办法可以实现这一目标吗?我是 oracle 的新手,感谢每一个帮助。谢谢你。