草庐IT

row-number

全部标签

sql - 去建立错误 "rows.Columns undefined (type *sql.Row has no field or method Columns)"

我想使用golang从我的postgresql数据库中打印具有多列的多行。同时构建以下代码packagemainimport("database/sql""fmt""github.com/gin-gonic/gin"_"github.com/lib/pq""log""runtime")funcmain(){runtime.GOMAXPROCS(runtime.NumCPU())db,err:=sql.Open("postgres","dbname=sample_datauser=postgrespassword=postgressslmode=disable")deferdb.Clos

postgresql - func (rs *Rows) 扫描处理一个列类型的数组字符串

我的Postgres数据库中有一列用于标记,它是一个字符串数组。我在我的golang中将它定义为:typedevicestruct{deviceIDstringmacAddresssql.NullStringnamesql.NullStringagentIDsql.NullStringgroupTypesql.NullStringtags[]stringnormalizedboolnormalizedNamestringnormalizedMacAddressstring}当我这样对行运行扫描时:err=rows.Scan(&d.deviceID,&d.name,&d.tags,&d.

戈朗 : Reading a text file with multi-line rows

我有一个包含多行的文本文件,由空行分隔。在Go中逐行读取该行的最佳方式是什么?我想我可能必须使用带有我自己的Split函数的扫描仪,但只是想知道是否有更好/更简单的方法我错过了。我已经尝试使用我自己的基于bufio.ScanLines的Splitfunc:funcMyScanLines(data[]byte,atEOFbool)(advanceint,token[]byte,errerror){ifatEOF&&len(data)==0{return0,nil,nil}ifi:=bytes.IndexAny(data,"\n\n");i>=0{returni+1,dropCR(data

sql - 将 row.Scan 和 rows.Scan 接口(interface)结合起来?

我有两个针对Go中特定表的查询-一个用于检索单个项目,另一个用于返回列表。第一个使用sql.DB.QueryRow因为它只需要检索一行,第二个使用sql.DB.Query返回几个不同的结果。问题是序列化需要一些工作,我想通过一个从数据库行扫描并将其读入Go类型的方法来DRYup。我的代码现在看起来像://SometypewhichvariesconsiderablyfromitsDBrepresentation,andtakessomeefforttoserialize.typeFoostruct{Baz*BazBoard[8][8]int}//Getonefoobyitsidfunc

go - 无法启动进程 : invalid magic number in record at byte 0x0 Delve Golang

刚刚得到一个:couldnotlaunchprocess:invalidmagicnumberinrecordatbyte0x0在OSX上正常运行一段时间后运行时:dlvdebugmain.go重新安装了Delve,但仍然存在。它可以是什么? 最佳答案 问题是包的名称,我更改了它并成功了。Delve应该为这种情况提供更好的错误消息。以前我有一个自定义的包名。将其更改为main之后,delve又开始工作了。 关于go-无法启动进程:invalidmagicnumberinrecordatb

go - 大图书馆围棋中的 Lychrel Numbers

我正尝试在Go中制作一个Lychrel数字程序,但我遇到了一些麻烦。使用“math/big”库,并使用一些额外的打印语句进行调试,我的代码如下所示:funcreverse(n*big.Int)*big.Int{var(m=nr=big.NewInt(0)z=big.NewInt(0)one=big.NewInt(1)ten=big.NewInt(10))for{r.Mul(r,ten)d:=zd.Mod(m,ten)r.Add(r,d)m.Div(m,ten)ifm.Cmp(one)==-1{returnr}}}funcradd(num*big.Int)*big.Int{newNum:

mysql - 我必须在调用 *sql.Tx.Rollback() 之前调用 *sql.Rows.Close() 吗?

我在使用golang的sql包时,如果在事务中查询,调用rows.Scan()时出错,应该调用哪个方法首先在这一点之后?*sql.Tx.Rollback()还是*sql.Rows.Close()?目前我在*sql.Tx.Rollback()之前调用了*sql.Rows.Close(),但是我想知道,如果我颠倒这个顺序会发生什么?tx,err:=db.Begin()iferr!=nil{...//handleerror}rows,err:=tx.Query("sqlstmt")iferr!=nil{...//handleerror}deferrows.Close()//canIusede

go - Go的database/sql的rows.Scan的使用方法

我使用数据库/sql并定义到数据库表列(标记字段)的结构映射://Users...typeUsersstruct{IDint64`field:"id"`Usernamestring`field:"username"`Passwordstring`field:"password"`Telstring`field:"tel"`}然后我查询:rows,err:=db.Query(sql)//select*fromusersiferr!=nil{fmt.Println(err)}deferrows.Close()forrows.Next(){user:=new(Users)//worksbut

go - 为什么在执行 err == sql.ErrNoRows 时出现 cannot use type *sql.Row as type 错误

我试图按照此处给出的答案中的示例进行操作:Golang:Howtocheckforemptyarray(arrayofstruct)如何检查数据库返回是否为空所以我有这个:err=db.QueryRow("SELECTFROMaccountsWHEREsteamid=?",steamid)switch{caseerr==sql.ErrNoRows:caseerr!=nil:default://dostuff}但是我得到了错误:cannotusedb.QueryRow("SELECTFROMaccountsWHEREsteamid=?",steamid)(type*sql.Row)ast

sql - Golang 服务器 : send JSON with SQL query result that has variable number of columns

我正在使用Go服务器创建一个RESTfulAPI的小实现。我正在从URL中提取查询参数(我知道这不安全,稍后我会尝试解决这个问题,但如果您对这个主题有任何建议,它们会很有帮助)。我在3个sring变量中保存了表名、所需的列和一些条件。我正在使用这个查询:rows,_:=db.Query(fmt.Sprintf("SELECT%sFROM%sWHERE%s",columns,table,conditions))我想将查询结果作为JSON发送回我的前端。我有可变数量的未知列,所以我不能用“标准”方式来做。我能想到的一种解决方案是从查询结果和rows.Columns()中“手动”构建一个JS