From: Thierry Banel <tbanelwebmin@free.fr>
To: emacs-orgmode@gnu.org
Subject: Re: orgtbl-to-sqlinsert
Date: Tue, 04 Feb 2014 22:18:28 +0100 [thread overview]
Message-ID: <52F15924.1080104@free.fr> (raw)
In-Reply-To: <m1a9e9yt4r.fsf@tsdye.com>
[-- Attachment #1: Type: text/plain, Size: 2546 bytes --]
Le 03/02/2014 00:47, Thomas S. Dye a écrit :
> Aloha Thierry,
>
> Thierry Banel <tbanelwebmin@free.fr> writes:
>
>> Hi Thomas.
>>
>> I don't understand this behavior yet.
>> But here is a workaround:
>> try the #+ORGTBL: SEND feature:
>> 1- Add a #+ORGTBL: SEND line
>> 2- Add a BEGIN RECEIVE ORGTBL block
>> 3- Type C-c C-c with cursor on the first pipe of the table
>>
>> --8<--------------------------->8--
>> #+ORGTBL: SEND faraway orgtbl-to-sqlinsert :sqlname "foo" :fmt (1 "%s")
>> | one | two |
>> |-----+--------|
>> | 1 | Buckle |
>> | 2 | Shoe |
>> | 3 | Open |
>> | 4 | Door |
>>
>> ;; BEGIN RECEIVE ORGTBL faraway
>> BEGIN TRANSACTION;
>> INSERT INTO foo( one, two ) VALUES ( 1 , 'Buckle' );
>> INSERT INTO foo( one, two ) VALUES ( 2 , 'Shoe' );
>> INSERT INTO foo( one, two ) VALUES ( 3 , 'Open' );
>> INSERT INTO foo( one, two ) VALUES ( 4 , 'Door' );
>> COMMIT;
>> ;; END RECEIVE ORGTBL faraway
> Yes, this works.
>
> Perhaps the table needs to be processed before it is passed to
> orgtbl-to-sqlinsert?
>
> Note that =orgtbl-to-sqlinsert= takes advantage of org-mode's applying
> the formatting to each cell /before/ checking for a line-formatting
> function. The header line itself and sectioning line are suppressed
> with the settings
>
> : :hlfmt (lambda (lst) (setq firstheader nil))
> : :hline nil
> : :remove-nil-lines t
>
> I don't fully understand what this means, but it appears to address the
> table header.
>
> All the best,
> Tom
>
Hi again Thomas
Probably the issue is not in orgtbl-to-sqlinsert,
because orgtbl-to-sqlinsert does not receive the header of the table.
Here is another fix which just recovers the lost header and passes it to
orgtbl-to-sqlinsert:
---8<----------------------->8---
*** Experiment with orgtbl-sqlinsert
#+name: test-table
| one | two |
|-----+--------|
| 1 | Buckle |
| 2 | Shoe |
| 3 | Open |
| 4 | Door |
#+name: test-bed
#+header: :var x=test-table
#+begin_src emacs-lisp
(require 'orgtbl-sqlinsert)
(orgtbl-to-sqlinsert
(cons (cdadr (assoc :colname-names params)) (cons 'hline x))
'(:sqlname "foo" :fmt (1 "%s")))
#+end_src
#+RESULTS: test-bed
: BEGIN TRANSACTION;
: INSERT INTO foo( one, two ) VALUES ( 1 , 'Buckle' );
: INSERT INTO foo( one, two ) VALUES ( 2 , 'Shoe' );
: INSERT INTO foo( one, two ) VALUES ( 3 , 'Open' );
: INSERT INTO foo( one, two ) VALUES ( 4 , 'Door' );
: COMMIT;
---8<----------------------->8---
[-- Attachment #2: Type: text/html, Size: 3413 bytes --]
next prev parent reply other threads:[~2014-02-04 21:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-02 20:09 orgtbl-to-sqlinsert Thomas S. Dye
2014-02-02 21:19 ` orgtbl-to-sqlinsert Thierry Banel
2014-02-02 23:47 ` orgtbl-to-sqlinsert Thomas S. Dye
2014-02-04 21:18 ` Thierry Banel [this message]
2014-02-04 22:00 ` orgtbl-to-sqlinsert Thomas S. Dye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52F15924.1080104@free.fr \
--to=tbanelwebmin@free.fr \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).