主题
读取列名称 - GetColumnName
函数简介
读取查询结果集中指定列的名称,返回列名的字符串指针。
接口名称
GetColumnNameDLL调用
c
long GetColumnName(long ola, long stmt, int columnIndex);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ola | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| stmt | 长整数型 | 数据库语句对象指针,由 ExecuteReader 接口返回。 |
| columnIndex | 整数型 | 列索引,从0开始。 |
示例
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
std::string colName = ola.GetColumnName(stmt, 0);
ola.Finalize(stmt);
}
ola.CloseDatabase(db);
}csharp
using OLAPlug;
var ola = new OLAPlugServer();
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0)
{
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0)
{
string colName = ola.GetColumnName(stmt, 0);
ola.Finalize(stmt);
}
ola.CloseDatabase(db);
}python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
db = ola.OpenDatabase("data/app.db", "")
if db != 0:
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1")
if stmt != 0:
col_name = ola.GetColumnName(stmt, 0)
ola.Finalize(stmt)
ola.CloseDatabase(db)java
import com.olaplug.OLAPlugServer;
OLAPlugServer ola = new OLAPlugServer();
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt);
}
ola.CloseDatabase(db);
}cpp
var ola = com("OlaPlug.OlaSoft")
var db = ola.OpenDatabase("data/app.db", "")
if(db) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
var stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1")
if(stmt) {
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt)
}
ola.CloseDatabase(db)
}vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
db = ola.OpenDatabase("data/app.db", "")
If db <> 0 Then
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1")
If stmt <> 0 Then
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt)
End If
ola.CloseDatabase(db)
End Iftext
.局部变量 ola, OLAPlug
ola.创建 ()
db = ola.OpenDatabase (“data/app.db“, ““)
.如果真 (db ≠ 0)
ola.ExecuteSql (db, “CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)“)
ola.ExecuteSql (db, “INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)“)
stmt = ola.ExecuteReader (db, “SELECT id, name, score FROM users WHERE id=1“)
.如果真 (stmt ≠ 0)
ola.GetColumnName(stmt, 0);
ola.Finalize (stmt)
.如果真结束
ola.CloseDatabase (db)
.如果真结束aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var db = ola.OpenDatabase("data/app.db", "");
if(db){
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
var stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1");
if(stmt){
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt);
}
ola.CloseDatabase(db);
}text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
长整数 db = ola.OpenDatabase("data/app.db", "")
如果真 (db ≠ 0)
{
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
长整数 stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1")
如果真 (stmt ≠ 0)
{
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt)
}
ola.CloseDatabase(db)
}cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ola.ExecuteReader(db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
ola.GetColumnName(stmt, 0);
ola.Finalize(stmt);
}
ola.CloseDatabase(db);
}原生 DLL 调用
cpp
long instance = CreateCOLAPlugInterFace();
long db = OpenDatabase(instance, "data/app.db", "");
if (db != 0) {
ExecuteSql(instance, db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ExecuteSql(instance, db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ExecuteReader(instance, db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
std::string colName = ola.GetColumnName(stmt, 0);
Finalize(instance, stmt);
}
CloseDatabase(instance, db);
}csharp
using System.Runtime.InteropServices;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
long instance = CreateCOLAPlugInterFace();
long db = OpenDatabase(instance, "data/app.db", "");
if (db != 0)
{
ExecuteSql(instance, db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ExecuteSql(instance, db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ExecuteReader(instance, db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
string colName = ola.GetColumnName(stmt, 0);
Finalize(instance, stmt);
}
CloseDatabase(instance, db);
}python
from ctypes import CDLL, c_int, c_int64
ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
db = ola.OpenDatabase(instance, b"data/app.db", b"")
if db:
ExecuteSql(instance, db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ExecuteSql(instance, db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
long stmt = ExecuteReader(instance, db, "SELECT id, name, score FROM users WHERE id=1");
if (stmt != 0) {
col_name = ola.GetColumnName(stmt, 0)
Finalize(instance, stmt);
}
ola.CloseDatabase(instance, db)返回值
| 返回值 | 说明 |
|---|---|
| (返回值) | 列名的字符串指针。如果操作失败,返回 0。使用完毕后需调用 FreeStringPtr 释放内存。 |
注意事项
| 项目 | 说明 |
|---|---|
| 配合使用 | 通常与 ExecuteReader 和 GetColumnCount 配合使用。 |
| 如果列索引无效或操作失败 | 如果列索引无效或操作失败,函数将返回 0。 |
