prepared statements will tell us the field count
This commit is contained in:
parent
a5d8a087a7
commit
2c86f9d72a
1
Rakefile
1
Rakefile
|
@ -1,5 +1,6 @@
|
||||||
# encoding: UTF-8
|
# encoding: UTF-8
|
||||||
begin
|
begin
|
||||||
|
require 'rubygems'
|
||||||
require 'jeweler'
|
require 'jeweler'
|
||||||
JEWELER = Jeweler::Tasks.new do |gem|
|
JEWELER = Jeweler::Tasks.new do |gem|
|
||||||
gem.name = "mysql2"
|
gem.name = "mysql2"
|
||||||
|
|
|
@ -30,10 +30,23 @@ static VALUE param_count(VALUE self)
|
||||||
return ULL2NUM(mysql_stmt_param_count(stmt));
|
return ULL2NUM(mysql_stmt_param_count(stmt));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* call-seq: stmt.field_count # => 2
|
||||||
|
*
|
||||||
|
* Returns the number of fields the prepared statement returns.
|
||||||
|
*/
|
||||||
|
static VALUE field_count(VALUE self)
|
||||||
|
{
|
||||||
|
MYSQL_STMT * stmt;
|
||||||
|
Data_Get_Struct(self, MYSQL_STMT, stmt);
|
||||||
|
|
||||||
|
return UINT2NUM(mysql_stmt_field_count(stmt));
|
||||||
|
}
|
||||||
|
|
||||||
void init_mysql2_statement()
|
void init_mysql2_statement()
|
||||||
{
|
{
|
||||||
cMysql2Statement = rb_define_class_under(mMysql2, "Statement", rb_cObject);
|
cMysql2Statement = rb_define_class_under(mMysql2, "Statement", rb_cObject);
|
||||||
|
|
||||||
rb_define_method(cMysql2Statement, "prepare", prepare, 1);
|
rb_define_method(cMysql2Statement, "prepare", prepare, 1);
|
||||||
rb_define_method(cMysql2Statement, "param_count", param_count, 0);
|
rb_define_method(cMysql2Statement, "param_count", param_count, 0);
|
||||||
|
rb_define_method(cMysql2Statement, "field_count", field_count, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,4 +35,13 @@ describe Mysql2::Statement do
|
||||||
stmt.prepare 'SELECT 1'
|
stmt.prepare 'SELECT 1'
|
||||||
stmt.param_count.should == 0
|
stmt.param_count.should == 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should tell us the field count" do
|
||||||
|
stmt = @client.create_statement
|
||||||
|
stmt.prepare 'SELECT ?, ?'
|
||||||
|
stmt.field_count.should == 2
|
||||||
|
|
||||||
|
stmt.prepare 'SELECT 1'
|
||||||
|
stmt.field_count.should == 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue