dsn.go
func GenADODB(u *URL) (string, error) {
	// grab data source
	host, port := hostname(u.Host), hostport(u.Host)
	dsname, dbname := strings.TrimPrefix(u.Path, "/"), ""
	if dsname == "" {
		dsname = "."
	}

	// check if data source is not a path on disk
	if mode(dsname) == 0 {
		if i := strings.IndexAny(dsname, `\/`); i != -1 {
			dbname = dsname[i+1:]
			dsname = dsname[:i]
		}
	}

	q := u.Query()
	q.Set("Provider", host)
	q.Set("Port", port)
	q.Set("Data Source", dsname)
	q.Set("Database", dbname)

	// add user/pass
	if u.User != nil {
		q.Set("User ID", u.User.Username())
		pass, _ := u.User.Password()
		q.Set("Password", pass)
	}

	// save host, port, dbname
	if u.hostPortDB == nil {
		n := dsname
		if dbname != "" {
			n += "/" + dbname
		}
		u.hostPortDB = []string{host, port, n}
	}

	return genOptionsODBC(q, true), nil
}
func GenADODB(u *URL) (string, error) {
	// grab data source
	host, port := hostname(u.Host), hostport(u.Host)
	dsname, dbname := strings.TrimPrefix(u.Path, "/"), ""
	if dsname == "" {
		dsname = "."
	}

	// check if data source is not a path on disk
	if mode(dsname) == 0 {
		if i := strings.IndexAny(dsname, `\/`); i != -1 {
			dbname = dsname[i+1:]
			dsname = dsname[:i]
		}
	}

	q := u.Query()
	q.Set("Provider", host)
	q.Set("Port", port)
	q.Set("Data Source", dsname)
	q.Set("Database", dbname)

	// add user/pass
	if u.User != nil {
		q.Set("User ID", u.User.Username())
		pass, _ := u.User.Password()
		q.Set("Password", pass)
	}

	// save host, port, dbname
	if u.hostPortDB == nil {
		n := dsname
		if dbname != "" {
			n += "/" + dbname
		}
		u.hostPortDB = []string{host, port, n}
	}

	return genOptionsODBC(q, true), nil
}
func GenADODB ( u * URL ) ( string , error ) { // grab data source host , port := hostname ( u . Host ) , hostport ( u . Host ) dsname , dbname := strings . TrimPrefix ( u . Path , " " ) , " " if dsname == " " { dsname = " " } // check if data source is not a path on disk if mode ( dsname ) == 0 { if i := strings . IndexAny ( dsname , `\/` ) ; i != - 1 { dbname = dsname [ i + 1 : ] dsname = dsname [ : i ] } } q := u . Query ( ) q . Set ( " " , host ) q . Set ( " " , port ) q . Set ( " " , dsname ) q . Set ( " " , dbname ) // add user/pass if u . User != nil { q . Set ( " " , u . User . Username ( ) ) pass , _ := u . User . Password ( ) q . Set ( " " , pass ) } // save host, port, dbname if u . hostPortDB == nil { n := dsname if dbname != " " { n += " " + dbname } u . hostPortDB = [ ] string { host , port , n } } return genOptionsODBC ( q , true ) , nil }
// GenADODB generates a adodb DSN from the passed URL.
GenADODB generates a adodb DSN from the passed URL .