Re: OT , Obtener ID (PK) dese código VB6 con odbc

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Edwin Quijada <listas_quijada(at)hotmail(dot)com>, systemguards(at)gmail(dot)com, listas(at)yoel(dot)com(dot)ar
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: OT , Obtener ID (PK) dese código VB6 con odbc
Date: 2007-06-28 00:21:33
Message-ID: 650356.55559.qm@web63707.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Edwin Quijada <listas_quijada(at)hotmail(dot)com>
escribió:

> Gabriel , como eres el master en VB que tal si te
> pruebas como funcionaria
> el
> insert....returning y posteas la solucion por aca
> Claro , eso invocandolo desde VB.
>
>
No hagas top-posting, jeje.
Bueno Edwin, como no soy Master de nada, no logre
mucho con returning desde postgreSQL si alguien se
anima y me ilustra como cargo el resultado del
returning en una variable y esto lo retorna una
funcion, ya tengo la solucion mientras doy esta que es
menos completa y para dar una idea, o sea poco
elaborada.

Empecemos a ver la cosa desde el lado de postgresql

Tabla
CREATE TABLE "public"."deposito" (
"id_deposito" SERIAL,
"deposito" VARCHAR(50),
CONSTRAINT "deposito_id_deposito_key"
UNIQUE("id_deposito")
) WITHOUT OIDS;

En la version de postgesql se crea sola

CREATE SEQUENCE "public"."deposito_id_deposito_seq"
INCREMENT 1 MINVALUE 1
MAXVALUE 2147483647 START 1
CACHE 1;

Funcion, en esto los genios de aqui pueden aportar mas
que yo, pero con mis pocos conocimientos, aca estaria

CREATE OR REPLACE FUNCTION "public"."fnc_deposito"
(cdeposito varchar) RETURNS integer AS
$body$
declare
cdeposito alias for $1;
ndeposito integer;
t2_row deposito_id_deposito_seq%ROWTYPE;
BEGIN
SELECT * into t2_row from deposito_id_deposito_seq;
ndeposito:=t2_row.last_value+1;
insert into deposito (deposito) select $1;
return ndeposito;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT
SECURITY INVOKER;

Bueno con esto del lado de postgresql. nos vamos para
Windows, y aca es donde casi toda la lista me tira
pedradas.

Creamos el DSN que nos conecte a la base de datos.

Y ahora es donde las pedradas duelen por que nos vamos
para visual basic.

Primero cree un dataenviroment.dsr
Defini la conexion apuntando al DSN
y con boton izquierdo del mouse inserte un
procedimiento almacenado, entre todos elegi
public.fnc_deposito, usado para este ejemplo

En el Form1 creado en el nuevo proyecto con un text
box y un command button,
digite este pequenio codigo.

Option Explicit

Private Sub Command1_Click()
Dim a As Integer
a = Dtadeposito.public_fnc_deposito(Text1.Text)
MsgBox a
End Sub

Fijate que no tuve que hacer mucho a base de codigo,
como abrir y cerrar un recordset para insertar ni nada
de eso.
O poner un recordset.addnew o un adodatacontrol con
update cancel y todas esas historias.

atte
Gabriel Hermes Colina Zambra

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2007-06-28 00:39:15 insert ......... returning ?
Previous Message Alvaro Herrera 2007-06-27 22:39:35 Re: funcion no existe