in database/sql rows.Scan(…) can only copy values to seperate variables, the
style is not comfortable ,I want use a struct as database row.
I want to use unexported database/sql.convertAssign,
type Test struct {
Name string
Age int
Email string
}
var tests []Test
var count int
b := NewSqlBuilder()
b.Sql(`select * from test where name = ?;
select count(*) from test;`, "ybj")
fmt.Println(b.String())
fmt.Println(b.Params())
QueryObjects(db, b.String(), b.Params(), []func(r *Record){
func(r *Record) {
var t Test = Test{}
r.ConvertAssign(0, &t.Name)
r.ConvertAssignByName("age", &t.Age)
r.ConvertAssignByName("Email", &t.Email)
tests = append(tests, t)
},
func(r *Record) {
r.ConvertAssign(0, &count)
},
})
fmt.Println(tests)
fmt.Println(count)
The methods r.ConvertAssign and r.ConvertAssignByName should work keep the same
with database.sql.ConvertAssign
> On Nov 20, 2018, at 04:41, Ian Lance Taylor <[email protected]> wrote:
>
> On Mon, Nov 19, 2018 at 2:11 AM, iamybj via golang-nuts
> <[email protected]> wrote:
>>
>> I am dong a simple sql library, but i need access some unexpected members in
>> the std lib.
>> I find this project https://github.com/alangpierce/go-forceexport
>> but it is out of date.\
>>
>> The authors of golang are some old programmer, but programming language
>> processing for several ten years.
>> golang must borrow new features from c# and java.
>>
>> reflection should be completely support package, it is not enough now.
>>
>> And also, in java and c#, user defined types are the same as runtime types
>> for example these 2 languages can use for..each for user defined types.
>> but in go, for...range can only be applied in system types.
>>
>> A lot of thing should be done, go process too slow...
>
> Thanks for the note, but you didn't show us any code. What do you
> actually want?
>
> To the best of my knowledge the reflect package lets you do anything
> that you can do in the language itself, except for some very special
> cases like creating a new interface type.
>
> Ian
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.