go语言通过odbc操作Access数据库的方法

时间:2023-09-17 08:28:19 其他范文 收藏本文 下载本文

go语言通过odbc操作Access数据库的方法(整理9篇)由网友“精神广东人”投稿提供,下面是小编整理过的go语言通过odbc操作Access数据库的方法,欢迎大家阅读借鉴,并有积极分享。

go语言通过odbc操作Access数据库的方法

篇1:go语言通过odbc操作Access数据库的方法

作者:work24 字体:[增加 减小] 类型:

这篇文章主要介绍了go语言通过odbc操作Access数据库的方法,实例分析了Go语言通过odbc连接、查询与关闭access数据库的技巧,需要的朋友可以参考下

本文实例讲述了go语言通过odbc操作Access数据库的方法,分享给大家供大家参考。具体如下:

这里需要用到go-odbc库,下载地址为:github.com/weigj/go-odbc

代码如下:

package main;

import (

“fmt”

“database/sql”

_“odbc/driver”

)

func main{

conn,err := sql.Open(“odbc”,“driver={Microsoft Access Driver (*.mdb)};dbq=d:\\test.mdb”);

if(err!=nil){

fmt.Println(“Connecting Error”);

return;

}

defer conn.Close();

stmt,err := conn.Prepare(“select * from test”);

if(err!=nil){

fmt.Println(“Query Error”);

return;

}

defer stmt.Close();

row,err := stmt.Query();

if err!=nil {

fmt.Println(“Query Error”);

return;

}

defer row.Close();

for row.Next() {

var id int;

var name string;

if err := row.Scan(&id,&name);err==nil {

fmt.Println(id,name);

}

}

fmt.Printf(“%s\n”,“finish”);

return;

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇2:VB两种操作Access数据库方法的比较

在VB编程中通常要与数据库打交道,对于数据量较小的应用,一般选用Access作为数据库,因为Access数据库比较简单,功能也比较齐全,数据的备份、拷贝都很方便,且程序发布时不需要额外单独安装其它的数据库管理软件,

VB两种操作Access数据库方法的比较

。因此,在功能能够满足要求的条件下,Access数据库往往成为一些小型数据库软件的首选。

关于用VB操作Access库表的方法有多种,一般初学者往往会使用数据控件,许多资料上也大都以此作为操作Access数据库的起点来介绍,因为这个方法使用起来非常简单,但使用数据控件的方法在程序编码上往往不够灵活。现在介绍一下其它两种操作Access数据库的方法。

第一种:使用数据库对象

首先,要进行有关数据对象的声明,代码如下。

Dim MyWs As Workspace

Dim MyDB As Database

Dim WordTab As Recordset

生成工作区,打开数据库,然后再根据需要打开相应的库表。

Set MyWs = DBEngine.CreateWorkspace″″ ″Admin″ ″″ dbUseJet

Set MyDB = MyWs.OpenDatabase示菘饷称 False False

Set WordTab = MyDB.OpenRecordset″表谩 dbOpenDynaset

这种方法的优点是代码比较简单,要求的环境为DAO 2.5/3.51,其中表名可以换成SELECT语句,即根据条件打开所需要的记录集,这种方法可脱离数据控件,可以比较方便灵活地操作数据库表,增加了程序的灵活性。

提示:经过测试发现,这种方法只能打开Access97库表,对于Access库表却无能为力,会弹出库表格式不对的出错提示。另外,对数据环境的要求仍比较多,

第二种:使用ADODB

首先,声明一个链接变量,并根据需要声明记录集变量。

Dim LocCnn1 As ADODB.Connection

Dim LocRst1 As ADODB.Recordset

建立与数据库的链接,如果数据库没有口令,最后一行可以不写(写上也不会错)。

Set LocCnn1 = New ADODB.Connection

LocCnn1.Open ″Provider=Microsoft.Jet.OLEDB.4.0User ID=Admin & _

″Data Source=″ & App.Path & ″数据库名称.mdb& _

″Mode=Share Deny NoneExtended Properties=''Persist Security Info=False & _

″Jet OLEDBDatabase Password='asp561rbc'

这种方法虽然代码长一些,但对数据环境要求低,且结构清晰,所编写的发布程序也大为减小。由于与链接SQL Server等数据库的方法一样,因而大量的操作数据库的代码相同,当数据库需要由Access扩充到一些大型数据库,或由一些大型数据库裁剪出一个简单数据库时,程序的移植会比较方便。

另外,这种方法对于Access97及Access2000均能很好地支持,兼容性好。对于大量插入、删除、修改等操作,只在Connection层进行即可,既可提高速度又可减少代码。

如果还要获取具体的记录集内容,则须再根据条件打开具体的库表,代码如下:

Set LocRst1 = New ADODB.Recordset

LocRst1.CursorType = adOpenKeyset

LocRst1.LockType = adLockOptimistic

LocRst1.Open ″SELECT FROM 表名″ LocCnn1adCmdText

提示:一般情况下,建议使用第二种方法。

篇3:go语言操作redis连接池的方法

作者:heishui 字体:[增加 减小] 类型:

这篇文章主要介绍了go语言操作redis连接池的方法,涉及Go语言操作radis的技巧,需要的朋友可以参考下

本文实例讲述了go语言操作redis连接池的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

func newPool(server, password string) *redis.Pool {

return &redis.Pool{

MaxIdle: 3,

IdleTimeout: 240 * time.Second,

Dial: func (redis.Conn, error) {

c, err := redis.Dial(“tcp”, server)

if err != nil {

return nil, err

}

if _, err := c.Do(“AUTH”, password); err != nil {

c.Close()

return nil, err

}

return c, err

},

TestOnBorrow: func(c redis.Conn, t time.Time) error {

_, err := c.Do(“PING”)

return err

},

}

}

var (

pool *redis.Pool

redisServer = flag.String(“redisServer”, “:6379”, “”)

redisPassword = flag.String(“redisPassword”, “”, “”)

)

func main() {

flag.Parse()

pool = newPool(*redisServer, *redisPassword)

...

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇4:Go语言通过http抓取网页的方法

作者:liuli 字体:[增加 减小] 类型:转载

这篇文章主要介绍了Go语言通过http抓取网页的方法,实例分析了Go语言通过http操作页面的技巧,需要的朋友可以参考下

本文实例讲述了Go语言通过http抓取网页的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

import (

“fmt”

“log”

“net/http”

“net/url”

“io/ioutil”

)

//指定代理ip

func getTransportFieldURL(proxy_addr *string) (transport *http.Transport) {

url_i := url.URL{}

url_proxy, _ := url_i.Parse(*proxy_addr)

transport = &http.Transport{Proxy : http.ProxyURL(url_proxy)}

return

}

//从环境变量$http_proxy或$HTTP_PROXY中获取HTTP代理地址

func getTransportFromEnvironment() (transport *http.Transport) {

transport = &http.Transport{Proxy : http.ProxyFromEnvironment}

return

}

func fetch(url , proxy_addr *string) (html string) {

transport := getTransportFieldURL(proxy_addr)

client := &http.Client{Transport : transport}

req, err := http.NewRequest(“GET”, *url, nil)

if err != nil {

log.Fatal(err.Error())

}

resp, err := client.Do(req)

if err != nil {

log.Fatal(err.Error())

}

if resp.StatusCode == 200 {

robots, err := ioutil.ReadAll(resp.Body);

resp.Body.Close()

if err != nil {

log.Fatal(err.Error())

}

html = string(robots);

} else {

html = “”

}

return

}

func main() {

proxy_addr := “183.221.250.137:80/”

url := “www.baidu.com/s?wd=ip”

html := fetch(&url, &proxy_addr)

fmt.Println(html)

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇5:go语言通过zlib压缩数据的方法

作者:紫青城 字体:[增加 减小] 类型:

这篇文章主要介绍了go语言通过zlib压缩数据的方法,实例分析了Go语言中zlib的使用技巧,需要的朋友可以参考下

本文实例讲述了go语言通过zlib压缩数据的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

import (

“fmt”

“compress/zlib”

“bytes”

)

func main {

var input = []byte(“data:image/png;base64,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”)

var buf bytes.Buffer

compressor, err := zlib.NewWriterLevelDict(&buf, zlib.BestCompression, input)

if err != nil {

fmt.Println(“压缩失败”)

return

}

compressor.Write(input)

compressor.Close()

fmt.Println(buf.Bytes())

fmt.Println(len(buf.Bytes()))

fmt.Println(len(input))

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇6:go语言通过管道连接两个命令行进程的方法

作者:令狐不聪 字体:[增加 减小] 类型:转载

代码如下:

package main

import (

“os”

“os/exec”

“fmt”

“flag”

“strings”

)

func main() {

generator := exec.Command(“cmd1”)

consumer := exec.Command(“cmd2”)

pipe, err := consumer.StdinPipe()

generator.Stdout = pipe

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇7:Go语言通过Luhn算法验证信用卡卡号是否有效的方法

作者:heishui 字体:[增加 减小] 类型:

这篇文章主要介绍了Go语言通过Luhn算法验证信用卡卡号是否有效的方法,实例分析了Luhn算法的原理与验证卡号的使用技巧,需要的朋友可以参考下

本文实例讲述了Go语言通过Luhn算法验证信用卡卡号是否有效的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

import (

“fmt”

“strings”

)

const input = `49927398716

49927398717

1234567812345678

1234567812345670`

var t = [...]int{0, 2, 4, 6, 8, 1, 3, 5, 7, 9}

func luhn(s string) bool {

odd := len(s) & 1

var sum int

for i, c := range s {

if c < ‘0‘ || c >‘9‘ {

return false

}

if i&1 == odd {

sum += t[c-‘0‘]

} else {

sum += int(c - ‘0‘)

}

}

return sum%10 == 0

}

func main {

for _, s := range strings.Split(input, “\n”) {

fmt.Println(s, luhn(s))

}

}

输出结果

代码如下:

49927398716 true

49927398717 false

1234567812345678 false

1234567812345670 true

希望本文所述对大家的Go语言程序设计有所帮助,

篇8:go语言通过反射获取和设置结构体字段值的方法

作者:heishui 字体:[增加 减小] 类型:转载

这篇文章主要介绍了go语言通过反射获取和设置结构体字段值的方法,实例分析了Go语言反射的使用技巧,需要的朋友可以参考下

本文实例讲述了go语言通过反射获取和设置结构体字段值的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

type MyStruct struct {

N int

}

n := MyStruct{ 1 }

// get

immutable := reflect.ValueOf(n)

val := immutable.FieldByName(“N”).Int()

fmt.Printf(“N=%d\n”, val) // prints 1

// set

mutable := reflect.ValueOf(&n).Elem()

mutable.FieldByName(“N”).SetInt(7)

fmt.Printf(“N=%d\n”, n.N) // prints 7

希望本文所述对大家的go语言程序设计有所帮助,

篇9:(一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)

只要把下面的例子理解了,那么通过C API操作数据库就没啥难的了

#include #include #include #include MYSQL mysql; //mysql连接MYSQL_RES *res; //这个结构代表返回行的一个查询结果集MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示char query[100]; //查询语句char order[100];void STRINSERT(int count){char *delim=“_”;char *p;char *q;char temp[20];scanf(“%s”,temp);strcpy(order,strtok(query,delim));strcat(order,temp);int i=1;while((p=strtok(NULL,delim))){strcat(order,p);if(i(一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)

。if(t){printf(“执行显示时出现异常: %s”,mysql_error(&mysql));}res=mysql_store_result(&mysql);//检索完整的结果集至客户端。printf(“姓名\t学号\t年龄\t\n”);while(row=mysql_fetch_row(res)){for(t=0;t

运行结果如下:

个人网站安全 从数据库合理管理开始数据库教程

DB2数据库SQL注入语句

perl连接access数据库自动测试脚本语言

如何保护MySQL 中的重要数据

离题的话Windows系统

了解一下NULLs怎样影响IN和EXISTS数据库教程

三大措施设置数据库安全 保障网站安全运营

《菜鸟学数据分析》对数学技能要求高吗?

全面了解初中议论文相关题型

Perl 脚本的特点数据库教程

go语言通过odbc操作Access数据库的方法
《go语言通过odbc操作Access数据库的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【go语言通过odbc操作Access数据库的方法(整理9篇)】相关文章:

网络聊天英语缩略语含义2023-04-30

如何学好Access数据库编程2023-04-30

如何设置ACCESS(运行时)的宏安全性级别数据库教程2023-03-01

编程毕业论文范文大全2023-01-14

ACCESS数据库中Field对象的caption属性读写数据库教程2023-06-16

校园网站设计方案2023-11-07

关于一个数据转换软件的使用StatTransfer7数据库教程2023-05-15

小技巧:用批处理对MySQL进行数据操作数据库教程2023-03-28

大学生计算机专业开题报告2022-05-06

一个基因序列及其注释数据库的管理系统2023-02-04

点击下载本文文档