From: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>, 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: | ID (PK) dese código VB6 funcion con returning |
Date: | 2007-06-28 04:45:35 |
Message-ID: | 77353.14029.qm@web63708.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Edwin ahora si cumpli con tu deseo
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;
Antes lo plantee con una funcion que Alvaro me grito
Noo y con razon, me aporto la solucion nextval,
totalmente valida para cumplir el proposito, pero como
el desafio de Edwin era que tomara el returning desde
VB, aca esta la solucion con la funcion que me retorna
el returning y la llamo desplegando con un msgbox,
despues de esto siendo las 2 am, me voy a tomar
merecido descanso y a dormirme en el trabajo un
poquito. Espero les guste.
CREATE OR REPLACE FUNCTION "public"."fnc_deposito"
(cdeposito varchar) RETURNS integer AS
$body$
declare
cdeposito alias for $1;
ndeposito integer;
BEGIN
insert into deposito (deposito) values($1) returning
id_deposito into ndeposito;
return ndeposito;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT
SECURITY INVOKER;
Puede cambiarse values($1) por select $1 a gusto
del consumidor
Estoy contentisimo con las posibilidades del returning
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/
>
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2007-06-28 04:48:28 | Re: OT , Obtener ID (PK) dese código VB6 con odbc |
Previous Message | Jaime Casanova | 2007-06-28 04:45:32 | Re: OT , Obtener ID (PK) dese código VB6 con odbc |