OK, another change: added a fix for the blank line at the end. diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el index 5bb123d..2ff85d9 100644 --- a/lisp/ob-sql.el +++ b/lisp/ob-sql.el @@ -65,6 +65,7 @@ This function is called by `org-babel-execute-src-block'." (in-file (org-babel-temp-file "sql-in-")) (out-file (or (cdr (assoc :out-file params)) (org-babel-temp-file "sql-out-"))) + (header-delim "") (command (case (intern engine) ('msosql (format "osql %s -s \"\t\" -i %s -o %s" (or cmdline "") @@ -84,9 +85,26 @@ This function is called by `org-babel-execute-src-block'." (message command) (shell-command command) (with-temp-buffer + ; need to figure out what the delimiter is for the header row + (with-temp-buffer + (insert-file-contents out-file) + (goto-char (point-min)) + (when (re-search-forward "^\\(-+\\)[^-]" nil t) + (setq header-delim (match-string-no-properties 1))) + (goto-char (point-max)) + (forward-char -1) + (while (looking-at "\n") + (delete-char 1) + (goto-char (point-max)) + (forward-char -1)) + (write-file out-file)) (org-table-import out-file '(16)) (org-babel-reassemble-table - (org-table-to-lisp) + (mapcar (lambda (x) + (if (string= (car x) header-delim) + 'hline + x)) + (org-table-to-lisp)) (org-babel-pick-name (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) (org-babel-pick-name (cdr (assoc :rowname-names params))
2010/12/21 Charles Sebold <cseb...@gmail.com>: > I feel silly. I was just testing with one output column. > > Change the $ in the regexp to "[^-]" or just reapply patch as follows: > > diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el > index 5bb123d..32b7bf0 100644 > --- a/lisp/ob-sql.el > +++ b/lisp/ob-sql.el > @@ -65,6 +65,7 @@ This function is called by `org-babel-execute-src-block'." > (in-file (org-babel-temp-file "sql-in-")) > (out-file (or (cdr (assoc :out-file params)) > (org-babel-temp-file "sql-out-"))) > + (header-delim "") > (command (case (intern engine) > ('msosql (format "osql %s -s \"\t\" -i %s -o %s" > (or cmdline "") > @@ -84,9 +85,19 @@ This function is called by `org-babel-execute-src-block'." > (message command) > (shell-command command) > (with-temp-buffer > + ; need to figure out what the delimiter is for the header row > + (with-temp-buffer > + (insert-file-contents out-file) > + (goto-char (point-min)) > + (when (re-search-forward "^\\(-+\\)[^-]" nil t) > + (setq header-delim (match-string-no-properties 1)))) > (org-table-import out-file '(16)) > (org-babel-reassemble-table > - (org-table-to-lisp) > + (mapcar (lambda (x) > + (if (string= (car x) header-delim) > + 'hline > + x)) > + (org-table-to-lisp)) > (org-babel-pick-name (cdr (assoc :colname-names params)) > (cdr (assoc :colnames params))) > (org-babel-pick-name (cdr (assoc :rowname-names params)) > > 2010/12/21 Sébastien Vauban <wxhgmqzgw...@spammotel.com>: >> Hi Charles, >> >> Charles Sebold wrote: >>> I use org-mode and babel under Windows with osql, and the line separating >>> the header from the rest of the rows in the output was bothering me. >> >> Excellent initiative! >> >>> I don't know that this is a really good fix, but maybe it's a start for one? >>> It looks for the first output line of all dashes and replaces it later with >>> the 'hline when the table is lisp-ified. >> >> It does not work correctly for me (with the osql engine). Look at the >> situation before/after your patch: >> >> 1. Before >> >> #+srcname: top-10-dossiers-with-many-presta >> #+begin_src sql >> SET NOCOUNT ON >> >> SELECT TOP 10 prsAbcID, COUNT(*) AS '# Presta' >> FROM presta >> GROUP BY prsAbcID >> ORDER BY COUNT(*) DESC >> #+end_src >> >> #+results: top-10-dossiers-with-many-presta >> | prsAbcID | # Presta | >> | ---------------- | ------------- | >> | 73020050900111 | 22 | >> | 52020030200047 | 21 | >> | 61020060400007 | 21 | >> | 62020031200052 | 20 | >> | 72020051100016 | 20 | >> | 73020050800025 | 20 | >> | 56020031100002 | 19 | >> | 63020060900056 | 19 | >> | 61020030900049 | 18 | >> | 72020030700040 | 18 | >> | | | >> >> Another annoying thing is the empty line at the end. With the COUNT ON, >> there is one empty line followed by the count. >> >> 2. After >> >> #+results: top-10-dossiers-with-many-presta >> | prsAbcID | # Presta | >> | ---------------- | ------------- | >> | 73020050900111 | 22 | >> | 52020030200047 | 21 | >> | 61020060400007 | 21 | >> | 62020031200052 | 20 | >> | 72020051100016 | 20 | >> | 73020050800025 | 20 | >> | 56020031100002 | 19 | >> | 63020060900056 | 19 | >> | 61020030900049 | 18 | >> | 72020030700040 | 18 | >> |------------------+---------------| >> >> The hline is not applied on the second line, but at the end of the table. >> Perhaps the good condition is to work on the second line? >> >> Best regards, >> Seb >> >> -- >> Sébastien Vauban >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Please use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >> > > > > -- > Charles Sebold > Ego delendus sum > -- Charles Sebold Ego delendus sum _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode