Hello Reinhard,

Is it possible to insert new row to master and some rows to detailt in
same time?

Database is test.sql

spr_user_group.gfd:

When i am only inserting new spr_user row it is ok.
When i am only inserting new spr_usergroup row it is ok.
When i am trying to insert a user with newly entered group list i have
exception:

--------------------------
An unexpected error has occured:
null value in column "usergroup_user_id" violates not-null constraint
.
Please contact your system administrator.

INSERT INTO spr_usergroup (usergroup_group_id) VALUES
(%(new_usergroup_group_id)s)

  new_usergroup_group_id: 1
--------------------------

I have added 'primarykey' attribute to ds_spr_user datasource
  
spr_user.gdf:

When trying to insert new row have error:

INSERT INTO spr_user (user_login, user_id, user_sign, user_name) VALUES
(%(new_user_login)s, %(new_user_id)s, %(new_user_sign)s, %(new_user_name)s)

  new_user_login: u'1'
  new_user_sign: u'1'
  new_user_id: None
  new_user_name: u'1'

What is 'rowid' datasource attribute?
How datasource behaviour depends on primarykey, primarykeyseq and
rowid attributes defined or not?

-- 
Best regards,
 Oleg                          mailto:[EMAIL PROTECTED]
--
-- PostgreSQL database dump
--

SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
--

COMMENT ON SCHEMA public IS 'Standard public schema';


--
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
--

CREATE PROCEDURAL LANGUAGE plpgsql;


SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: spr_group; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE spr_group (
    group_id integer NOT NULL,
    group_name character varying(255) NOT NULL,
    group_sysname character varying(50) NOT NULL
);


ALTER TABLE public.spr_group OWNER TO postgres;

--
-- Name: spr_group_group_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE spr_group_group_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


ALTER TABLE public.spr_group_group_id_seq OWNER TO postgres;

--
-- Name: spr_group_group_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: postgres
--

ALTER SEQUENCE spr_group_group_id_seq OWNED BY spr_group.group_id;


--
-- Name: spr_group_group_id_seq; Type: SEQUENCE SET; Schema: public; Owner: 
postgres
--

SELECT pg_catalog.setval('spr_group_group_id_seq', 6, true);


--
-- Name: spr_user; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE spr_user (
    user_id integer NOT NULL,
    user_login character varying(25) NOT NULL,
    user_password character varying(250),
    user_name character varying(250) NOT NULL,
    user_sign character varying(250) NOT NULL
);


ALTER TABLE public.spr_user OWNER TO postgres;

--
-- Name: spr_usergroup; Type: TABLE; Schema: public; Owner: postgres; 
Tablespace: 
--

CREATE TABLE spr_usergroup (
    usergroup_id integer NOT NULL,
    usergroup_user_id integer NOT NULL,
    usergroup_group_id integer NOT NULL
);


ALTER TABLE public.spr_usergroup OWNER TO postgres;

--
-- Name: spr_user_group_user_group_id_seq; Type: SEQUENCE; Schema: public; 
Owner: postgres
--

CREATE SEQUENCE spr_user_group_user_group_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


ALTER TABLE public.spr_user_group_user_group_id_seq OWNER TO postgres;

--
-- Name: spr_user_group_user_group_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: postgres
--

ALTER SEQUENCE spr_user_group_user_group_id_seq OWNED BY 
spr_usergroup.usergroup_id;


--
-- Name: spr_user_group_user_group_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: postgres
--

SELECT pg_catalog.setval('spr_user_group_user_group_id_seq', 48, true);


--
-- Name: spr_user_user_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE spr_user_user_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


ALTER TABLE public.spr_user_user_id_seq OWNER TO postgres;

--
-- Name: spr_user_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: 
postgres
--

ALTER SEQUENCE spr_user_user_id_seq OWNED BY spr_user.user_id;


--
-- Name: spr_user_user_id_seq; Type: SEQUENCE SET; Schema: public; Owner: 
postgres
--

SELECT pg_catalog.setval('spr_user_user_id_seq', 37, true);


--
-- Name: group_id; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE spr_group ALTER COLUMN group_id SET DEFAULT 
nextval('spr_group_group_id_seq'::regclass);


--
-- Name: user_id; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE spr_user ALTER COLUMN user_id SET DEFAULT 
nextval('spr_user_user_id_seq'::regclass);


--
-- Name: usergroup_id; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE spr_usergroup ALTER COLUMN usergroup_id SET DEFAULT 
nextval('spr_user_group_user_group_id_seq'::regclass);


--
-- Data for Name: spr_group; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY spr_group (group_id, group_name, group_sysname) FROM stdin;
1       Administrator   ADMINISTRATOR
2       Manager MANAGER
3       Storeman        STOREMAN
4       Analyst ANALYST
5       Guest   GUEST
\.


--
-- Data for Name: spr_user; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY spr_user (user_id, user_login, user_password, user_name, user_sign) FROM 
stdin;
2       manager d41d8cd98f00b204e9800998ecf8427e        Manager -
1       admin   d41d8cd98f00b204e9800998ecf8427e        Admin   -
3       storeman        d41d8cd98f00b204e9800998ecf8427e        Storeman        
-
4       analyst d41d8cd98f00b204e9800998ecf8427e\n      Analyst -
5       boss    d41d8cd98f00b204e9800998ecf8427e        Boss    -
\.


--
-- Data for Name: spr_usergroup; Type: TABLE DATA; Schema: public; Owner: 
postgres
--

COPY spr_usergroup (usergroup_id, usergroup_user_id, usergroup_group_id) FROM 
stdin;
14      1       1
18      3       3
20      4       4
22      5       2
24      5       3
28      5       4
\.


--
-- Name: spr_group_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; 
Tablespace: 
--

ALTER TABLE ONLY spr_group
    ADD CONSTRAINT spr_group_pkey PRIMARY KEY (group_id);


--
-- Name: spr_user_group_pkey; Type: CONSTRAINT; Schema: public; Owner: 
postgres; Tablespace: 
--

ALTER TABLE ONLY spr_usergroup
    ADD CONSTRAINT spr_user_group_pkey PRIMARY KEY (usergroup_id);


--
-- Name: spr_user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; 
Tablespace: 
--

ALTER TABLE ONLY spr_user
    ADD CONSTRAINT spr_user_pkey PRIMARY KEY (user_id);


--
-- Name: idx_group_id; Type: INDEX; Schema: public; Owner: postgres; 
Tablespace: 
--

CREATE INDEX idx_group_id ON spr_usergroup USING btree (usergroup_group_id);


--
-- Name: idx_user_id; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE INDEX idx_user_id ON spr_usergroup USING btree (usergroup_user_id);


--
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;


--
-- PostgreSQL database dump complete
--

<?xml version="1.0"?>

<!--  GFD generator  -->

<form name='spr_user' title="Users and groups">

	<datasource name='ds_spr_user' connection='sales' prequery='Y'
		table = 'spr_user'
	/>

	<datasource name='ds_spr_usergroup' connection='sales' prequery='Y'
		table = 'spr_usergroup'

		master="ds_spr_user"
		masterlink="user_id"
		detaillink="usergroup_user_id"

	/>

	<datasource name='ds_spr_group' connection='sales' prequery='Y'
		table = 'spr_group'
	/>

<logic>

	<block name='b_spr_user' datasource='ds_spr_user' rows = '5'>
		<field name = 'id'        field = 'user_id'           />
		<field name = 'login'     field = 'user_login'        />
		<field name = 'password'  field = 'user_password'     />
		<field name = 'name'      field = 'user_name'         />
		<field name = 'sign'      field = 'user_sign'         />
	</block>

	<block name='b_spr_usergroup' datasource='ds_spr_usergroup' rows = '5'>
		<field name = 'id'     	  field = 'usergroup_id'     />
		<field name = 'user_id'   field = 'usergroup_user_id'           />
		<field name = 'group_id'  field = 'usergroup_group_id'                fk_source='ds_spr_group'   fk_description="group_name" fk_key="group_id" />
	</block>

</logic>

<layout>
<page name="page">
	<vbox>
		<hbox block='b_spr_user' label='User'> 
			<vbox><label text='Name'/> <entry field = 'name' /></vbox>
			<vbox><label text='Login'/><entry field = 'login'/></vbox>
			<vbox><label text='Sign'/> <entry field = 'sign' /></vbox>
			<!--entry field = 'id'            label = 'id'         style='label' /-->
		</hbox>
		<vbox block='b_spr_usergroup' label='Groups'>
			<label text='Group list'/><entry field = 'group_id'/>
			<!--entry field = 'user_id'    label = 'user_id'/-->
		</vbox>
	</vbox>
</page>   
</layout>

</form>
<?xml version="1.0"?>

<!--  GFD generator  -->

<form name='spr_user' title="Users only">

	<datasource name='ds_spr_user' connection='sales' prequery='Y'
		table = 'spr_user'
		primarykey = 'user_id'
	/>

<logic>

	<block name='b_spr_user' datasource='ds_spr_user' rows = '5'>
		<field name = 'id'        field = 'user_id'           />
		<field name = 'login'     field = 'user_login'        />
		<field name = 'password'  field = 'user_password'     />
		<field name = 'name'      field = 'user_name'         />
		<field name = 'sign'      field = 'user_sign'         />
	</block>

</logic>

<layout>
<page name="page">
	<vbox>
		<hbox block='b_spr_user' label='User'> 
			<vbox><label text='Name'/> <entry field = 'name' /></vbox>
			<vbox><label text='Login'/><entry field = 'login'/></vbox>
			<vbox><label text='Sign'/> <entry field = 'sign' /></vbox>
			<!--entry field = 'id'            label = 'id'         style='label' /-->
		</hbox>
	</vbox>
</page>   
</layout>

</form>
_______________________________________________
Gnue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnue

Reply via email to