pub struct ColumnMeta {
pub index: usize,
pub sql_type: i32,
pub sub_type: i32,
pub scale: i32,
pub length: i32,
pub nullable: bool,
pub field: String,
pub relation: String,
pub alias: String,
pub owner: String,
}Expand description
Metadados que descrevem uma coluna da saída de uma instrução preparada (ou um de seus parâmetros de entrada).
Fields§
§index: usizePosição na mensagem, começando em zero.
sql_type: i32Tipo SQL base (SQL_*, com o bit anulável removido).
sub_type: i32Sub-tipo Firebird. Para texto pode indicar charset; para BLOB indica o sub-tipo do BLOB.
scale: i32Escala de tipos numéricos (NUMERIC/DECIMAL); valores negativos indicam casas decimais.
length: i32Comprimento declarado em bytes (CHAR/VARCHAR) ou largura do tipo.
nullable: boolVerdadeiro se a coluna ou parâmetro aceita NULL.
field: StringNome subjacente da coluna.
relation: StringNome da relação/tabela de origem, quando o servidor informa.
alias: StringAlias de saída (o nome que a lista SELECT deu a ela).
owner: StringDono da relação de origem, quando o servidor informa.
Implementations§
Source§impl ColumnMeta
impl ColumnMeta
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
O nome que os chamadores veem para esta coluna (alias se presente, senão field).
Examples found in repository?
11fn main() -> Result<()> {
12 let cfg = ConnectConfig::new()
13 .host(std::env::var("FB_HOST").unwrap_or_else(|_| "127.0.0.1".into()))
14 .port(
15 std::env::var("FB_PORT")
16 .ok()
17 .and_then(|p| p.parse().ok())
18 .unwrap_or(3555),
19 )
20 .database(std::env::var("FB_DB").unwrap_or_else(|_| "employee".into()))
21 .user(std::env::var("FB_USER").unwrap_or_else(|_| "SYSDBA".into()))
22 .password(std::env::var("FB_PASSWORD").expect("set FB_PASSWORD"))
23 .wire_crypt(WireCrypt::Enabled);
24
25 let mut conn = Connection::connect(&cfg)?;
26 println!("conectado: protocolo v{}", conn.protocol_version());
27 let tx = conn.begin()?;
28
29 let sql = "SELECT emp_no, first_name FROM employee WHERE emp_no = 2";
30 let stmt = conn.prepare(&tx, sql)?;
31 println!(
32 "\nstmt_type={} colunas={}",
33 stmt.stmt_type(),
34 stmt.columns().len()
35 );
36 for c in stmt.columns() {
37 println!(
38 " [{}] name={:?} field={:?} relation={:?} alias={:?} owner={:?} type={} sub={} scale={} len={}",
39 c.index,
40 c.name(),
41 c.field,
42 c.relation,
43 c.alias,
44 c.owner,
45 c.sql_type,
46 c.sub_type,
47 c.scale,
48 c.length
49 );
50 }
51
52 stmt.drop_statement(&mut conn)?;
53 tx.commit(&mut conn)?;
54 conn.close()?;
55 Ok(())
56}Trait Implementations§
Source§impl Clone for ColumnMeta
impl Clone for ColumnMeta
Source§fn clone(&self) -> ColumnMeta
fn clone(&self) -> ColumnMeta
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more