灯角

文章 0 评论 0 浏览 23

灯角 2024-11-16 11:48:05

您可以尝试这个链接

您可以在以下位置使用 WebBrowser 控件
使用第二个 Web 浏览器的设计模式
控件设置为视图模式。

为了放置WebBrowser控件
在设计模式下,您可以使用
以下代码。

这段代码是一个超级精简的代码
所见即所得编辑器的版本之一
我们的软件产品。

只需创建一个新表单,删除一个
WebBrowser控件就可以了,然后把这个
在form_load中

Me.WebBrowser1.Navigate("about:blank")
Application.DoEvents()
Me.WebBrowser1.Document.OpenNew(False).Write("<html><body><div id=""editable"">Edit this text</div></body></html>")

'turns off document body editing
For Each el As HtmlElement In Me.WebBrowser1.Document.All
    el.SetAttribute("unselectable", "on")
    el.SetAttribute("contenteditable", "false")
Next

'turns on editable div editing
With Me.WebBrowser1.Document.Body.All("editable")
    .SetAttribute("width", Me.Width & "px")
    .SetAttribute("height", "100%")
    .SetAttribute("contenteditable", "true")
End With

'turns on edit mode
Me.WebBrowser1.ActiveXInstance.Document.DesignMode = "On"
'stops right click->Browse View
Me.WebBrowser1.IsWebBrowserContextMenuEnabled = False

You can try this one link

You can use the WebBrowser control in
design mode with a second WebBrowser
control set in view mode.

In order to put the WebBrowser control
in design mode, you can use the
following code.

This code is a super stripped down
version of a WYSIWYG editor for one of
our software products.

Simply create a new form, drop a
WebBrowser control on it, and put this
in the form_load

Me.WebBrowser1.Navigate("about:blank")
Application.DoEvents()
Me.WebBrowser1.Document.OpenNew(False).Write("<html><body><div id=""editable"">Edit this text</div></body></html>")

'turns off document body editing
For Each el As HtmlElement In Me.WebBrowser1.Document.All
    el.SetAttribute("unselectable", "on")
    el.SetAttribute("contenteditable", "false")
Next

'turns on editable div editing
With Me.WebBrowser1.Document.Body.All("editable")
    .SetAttribute("width", Me.Width & "px")
    .SetAttribute("height", "100%")
    .SetAttribute("contenteditable", "true")
End With

'turns on edit mode
Me.WebBrowser1.ActiveXInstance.Document.DesignMode = "On"
'stops right click->Browse View
Me.WebBrowser1.IsWebBrowserContextMenuEnabled = False

渲染 HTML 的最佳控件

灯角 2024-11-16 11:44:15

我猜这是由 带有资产管道的 Rails 3.1,link_to :确认消息显示两次?

您的开发环境中已经预编译了资源,<%= stylesheet_link_tag "application" %> 将扩展为多个标记,包括每个 CSS 文件,其中之一是 global.css

I would guess this is caused by the same problem as described in Rails 3.1 with Asset Pipeline, link_to :confirm message showing twice?.

You have precompiled assets in your development environment and <%= stylesheet_link_tag "application" %> will expand into multiple tags including each CSS file, one of them being global.css.

Rails 3.1 CSS 文件加载两次?

灯角 2024-11-16 11:04:40

您不应该抛出 Exception 类的实例。您应该抛出一个从Exception派生的类的实例。

您可以创建自己的异常类(如果您有框架尚未涵盖的内容,您应该出于习惯),然后您可以选择您希望 Visual Studio 中断的异常。

创建异常类后,转到“调试”-->“异常...”,然后选择要让调试器中断的异常。

You should not be throwing an instance of an Exception class. You should throw an instance of a class derived from Exception.

You can create your own exception class (and you should out of habit if you have something that's not already covered by the framework) then you can select the exceptions you want Visual Studio to break on.

Once you've created your exception class, go to Debug-->Exceptions... and then pick the exceptions you want to have the debugger break on.

如何在 C# 中抛出静默异常?

灯角 2024-11-16 10:40:10

您没有正确初始化新元素。

n->next = NULL; 添加到 createNode 函数中。

You're not initializing the new elements correctly.

Add n->next = NULL; to the createNode function.

链表C错误

灯角 2024-11-16 10:07:58

我是 mac 的新手。但我在这里发现了一些东西。有帮助还是没有帮助?

为您的新项目选择选项 -> 存储:核心数据

为您的项目选择选项 > 存储:核心数据

I am a totally new to mac. But I found something here. Is it help or not?

Choose Options for your new project -> Storage: Core Data:

Choose Options for your Project > Storage: Core Data

Xcode 4 缺少“使用核心数据”所有项目模板的复选框

灯角 2024-11-15 15:33:09

如果您想将 res.getDate("entryDate") 获取为 YYYY-MM-DD 那么您需要在查询中将其转换为日期,如下所示:

SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;

如果您有这样的感觉有帮助,然后进行投票以使其对其他人有用。

If you want to get res.getDate("entryDate") as YYYY-MM-DD then you need to cast as date in your query like this:

SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;

If you feel this is helpful then do upVote to make it useful for others.

JDBC DATE 格式错误

灯角 2024-11-15 07:09:50

我能看到该代码的唯一问题是该行,

    var Bcc = new MailAddress("deleted");

但我假设您修改了它以便在此处发布?

我看不出会导致您所看到的问题。我会检查电子邮件的标题以获取线索。捕获发送电子邮件的计算机上的网络流量也可能有所帮助。

The only problem I can see with that code is the line

    var Bcc = new MailAddress("deleted");

but I assume you modified it for posting here?

I can't see an issue that would cause what you're seeing. I'd check the headers in the emails for clues. Also capturing network traffic on the machine sending the emails could help.

应用程序发送电子邮件后出现两封空电子邮件的问题

灯角 2024-11-15 06:20:06
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    lv1 = (ListView) findViewById(R.id.ListView01);
    ed = (AutoCompleteTextView) findViewById(R.id.EditTextSearch);

    // AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, R.layout.list_item, countryName);
        ed.setAdapter(adapter1);

    this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    final List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
    for (int i = 0; i < countryName.length; i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("flag", "" + imageId[i]);
        map.put("country", countryName[i].toString());
        map.put("capital", capitalName[i].toString());
        map.put("countrytime",
                convertDateTimeToGMT(GMTplusMinusInMillisecond[i],
                        plusMinus[i]));
        map.put("GMT", GMTplusMinus[i].toString());

        fillMaps.add(map);
    }

    // fill in the grid_item layout
    SimpleAdapter adapter = new SimpleAdapter(this, fillMaps,
            R.layout.grid_item, from, to);
    lv1.setAdapter(adapter);

    ed.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            fillMaps.clear();
            textlength = ed.getText().length();
            for (int i = 0; i < countryName.length; i++) {
                if (textlength <= countryName[i].length()) {
                    if (ed.getText()
                            .toString()
                            .equalsIgnoreCase(
                                    (String) countryName[i].subSequence(0,
                                            textlength))) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        map.put("flag", "" + imageId[i]);
                        map.put("country", countryName[i].toString());
                        map.put("capital", capitalName[i].toString());
                        map.put("countrytime",
                                convertDateTimeToGMT(
                                        GMTplusMinusInMillisecond[i],
                                        plusMinus[i]));
                        map.put("GMT", GMTplusMinus[i].toString());

                        fillMaps.add(map);
                    }
                }
            }
            if(!fillMaps.isEmpty())
            {
            SimpleAdapter adapter = new SimpleAdapter(
                    WorldClockActivity.this, fillMaps, R.layout.grid_item,
                    from, to);
            lv1.setAdapter(adapter);
            }
            else
            {      String[] COUNTRIES = new String[] {"No record found"};
            lv1.setAdapter(new ArrayAdapter<String>(WorldClockActivity.this,R.layout.list_item, COUNTRIES));
            }

            // lv1.setAdapter(new
            // ArrayAdapter<String>(WorldClockActivity.this,android.R.layout.simple_list_item_1
            // , arr_sort));

        }
    });
}

public static String convertDateTimeToGMT(long millis, int plusMinus) {

    Calendar CalGMT;
    TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
    CalGMT = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
    CalGMT.get(Calendar.DAY_OF_MONTH);
    CalGMT.get(Calendar.MONTH);
    CalGMT.get(Calendar.YEAR);
    CalGMT.get(Calendar.HOUR_OF_DAY);
    CalGMT.get(Calendar.MINUTE);
    CalGMT.get(Calendar.SECOND);

    if (plusMinus == 1) {
        CalGMT.setTimeInMillis(CalGMT.getTimeInMillis() + millis);
    } else if (plusMinus == 0) {
        CalGMT.setTimeInMillis(CalGMT.getTimeInMillis() - millis);
    }
    String sendDateTimeInGMT = CalGMT.get(Calendar.HOUR_OF_DAY) + ":"
            + CalGMT.get(Calendar.MINUTE) + ":"
            + CalGMT.get(Calendar.SECOND);

    return sendDateTimeInGMT;
}

在此应用程序中使用上述代码完成了该应用程序,我使用 AutoCompleteTextView 在列表视图中提供搜索功能,然后列表视图显示所有国家/地区的名称,并且当用户在 AutoCompleteTextView 中输入然后相关时,用户能够按国家/地区名称搜索国家/地区搜索显示在列表视图中。
例如,如果用户想在世界国家/地区列表中搜索加拿大,则用户只需在 AutoCompleteTextView 中键入 ca,然后另一个列表就会出现在 AutoCompleteTextView 下方,并显示所有国家/地区名称开始 ca 名称,然后用户在此选择加拿大列表然后在列表视图中获取加拿大的所有信息。

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    lv1 = (ListView) findViewById(R.id.ListView01);
    ed = (AutoCompleteTextView) findViewById(R.id.EditTextSearch);

    // AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, R.layout.list_item, countryName);
        ed.setAdapter(adapter1);

    this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    final List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
    for (int i = 0; i < countryName.length; i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("flag", "" + imageId[i]);
        map.put("country", countryName[i].toString());
        map.put("capital", capitalName[i].toString());
        map.put("countrytime",
                convertDateTimeToGMT(GMTplusMinusInMillisecond[i],
                        plusMinus[i]));
        map.put("GMT", GMTplusMinus[i].toString());

        fillMaps.add(map);
    }

    // fill in the grid_item layout
    SimpleAdapter adapter = new SimpleAdapter(this, fillMaps,
            R.layout.grid_item, from, to);
    lv1.setAdapter(adapter);

    ed.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            fillMaps.clear();
            textlength = ed.getText().length();
            for (int i = 0; i < countryName.length; i++) {
                if (textlength <= countryName[i].length()) {
                    if (ed.getText()
                            .toString()
                            .equalsIgnoreCase(
                                    (String) countryName[i].subSequence(0,
                                            textlength))) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        map.put("flag", "" + imageId[i]);
                        map.put("country", countryName[i].toString());
                        map.put("capital", capitalName[i].toString());
                        map.put("countrytime",
                                convertDateTimeToGMT(
                                        GMTplusMinusInMillisecond[i],
                                        plusMinus[i]));
                        map.put("GMT", GMTplusMinus[i].toString());

                        fillMaps.add(map);
                    }
                }
            }
            if(!fillMaps.isEmpty())
            {
            SimpleAdapter adapter = new SimpleAdapter(
                    WorldClockActivity.this, fillMaps, R.layout.grid_item,
                    from, to);
            lv1.setAdapter(adapter);
            }
            else
            {      String[] COUNTRIES = new String[] {"No record found"};
            lv1.setAdapter(new ArrayAdapter<String>(WorldClockActivity.this,R.layout.list_item, COUNTRIES));
            }

            // lv1.setAdapter(new
            // ArrayAdapter<String>(WorldClockActivity.this,android.R.layout.simple_list_item_1
            // , arr_sort));

        }
    });
}

public static String convertDateTimeToGMT(long millis, int plusMinus) {

    Calendar CalGMT;
    TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
    CalGMT = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
    CalGMT.get(Calendar.DAY_OF_MONTH);
    CalGMT.get(Calendar.MONTH);
    CalGMT.get(Calendar.YEAR);
    CalGMT.get(Calendar.HOUR_OF_DAY);
    CalGMT.get(Calendar.MINUTE);
    CalGMT.get(Calendar.SECOND);

    if (plusMinus == 1) {
        CalGMT.setTimeInMillis(CalGMT.getTimeInMillis() + millis);
    } else if (plusMinus == 0) {
        CalGMT.setTimeInMillis(CalGMT.getTimeInMillis() - millis);
    }
    String sendDateTimeInGMT = CalGMT.get(Calendar.HOUR_OF_DAY) + ":"
            + CalGMT.get(Calendar.MINUTE) + ":"
            + CalGMT.get(Calendar.SECOND);

    return sendDateTimeInGMT;
}

}

I have done the application using the above code in this application i have use AutoCompleteTextView for provide search facility in list view then list view show the name of all the country and user able to search country by country name when user type in AutoCompleteTextView then related search is show in listview.
Ex if user want to search Canada in the world country list then user only type ca in AutoCompleteTextView then a another list is appear blow the AutoCompleteTextView and show the all country name start ca name then user chose Canada in this list then get the all information of Canada in listview.

根据用户类型自动搜索

灯角 2024-11-15 05:21:15

这两个应用程序都在 Windows 上运行,因此应该在同一服务器上运行。

因此,要么寻找支持这两种应用程序的托管提供商,要么获取虚拟专用服务器 (VPS) 并自行安装软件。

Both applications run on Windows, so should run on the same server.

So either look for hosting providers that support both applications or get a Virtual Private Server (VPS) and install the software yourself.

共同托管 Ruby on Rails 和另一个 Web 应用程序

灯角 2024-11-15 04:51:38

版本:ibm-db 3.0.2 - ibm-db==3.0.2

pip install ibm-db

发布时间:2020 年 6 月 17 日

连接到本地或编目数据库:

import ibm_db
conn = ibm_db.connect("database","username","password")

连接到未编目数据库:

import ibm_db
ibm_db.connect("DATABASE=name;HOSTNAME=host;PORT=60000;PROTOCOL=TCPIP;UID=username;
            PWD=password;", "", "")

Version: ibm-db 3.0.2 - ibm-db==3.0.2

pip install ibm-db

Released: Jun 17, 2020

Connect to a local or cataloged database:

import ibm_db
conn = ibm_db.connect("database","username","password")

Connect to an uncataloged database:

import ibm_db
ibm_db.connect("DATABASE=name;HOSTNAME=host;PORT=60000;PROTOCOL=TCPIP;UID=username;
            PWD=password;", "", "")

如何将 Python 连接到 Db2

灯角 2024-11-15 03:43:21

可以根据#拆分成数组。
这样

String[] entries = data.Split('#');

你就会得到一个包含“8$154”、“3$021308831”等的数组。

现在你只需处理这些条目并在美元符号处分割每个条目:

String[] tmp = entries[0].Split('

所以你会得到

tmp[0] = "8";
tmp[1] = "154";

一些支票,你会很高兴。我想这里不需要正则表达式。

如果你有“8$15$4#3$021308831”,那么你将进入tmp

tmp[0] = "8"; // your key!
tmp[1] = "15"; // data part
tmp[2] = "4"; // data part ($ is missing!)

所以你必须连接索引1以上的所有tmp:

StringBuilder value = new StringBuilder();
for(int i = 1; i < tmp.Length; i++)
{
    if(i > 1) value.Append("$");
    value.Append(tmp[i]);
}
);

所以你会得到

一些支票,你会很高兴。我想这里不需要正则表达式。

如果你有“8$15$4#3$021308831”,那么你将进入tmp

所以你必须连接索引1以上的所有tmp:

You can split into array based on #.
With

String[] entries = data.Split('#');

you will get an arrays with "8$154", "3$021308831", etc.

Now you just work with the entries and split each one at the dollar sign:

String[] tmp = entries[0].Split('

So you get

tmp[0] = "8";
tmp[1] = "154";

Build in some checks and you will be happy. No need for regex here I suppose.

If you have "8$15$4#3$021308831" then you will get in tmp:

tmp[0] = "8"; // your key!
tmp[1] = "15"; // data part
tmp[2] = "4"; // data part ($ is missing!)

So you would have to concat all tmp above index 1:

StringBuilder value = new StringBuilder();
for(int i = 1; i < tmp.Length; i++)
{
    if(i > 1) value.Append("$");
    value.Append(tmp[i]);
}
);

So you get

Build in some checks and you will be happy. No need for regex here I suppose.

If you have "8$15$4#3$021308831" then you will get in tmp:

So you would have to concat all tmp above index 1:

如何用正则表达式解析子字符串?

灯角 2024-11-14 23:25:23

如果您尝试在 mailComposer 的 messageBody 中使用此 jpeg 文件..那么我必须清除您,伙计...

您不能在 mailComposer 的 mailbody 中使用本地图像,该图像应该可用在服务器上并通过传递相同的 url 在邮件正文中使用。

如果您正在尝试其他内容...我会说遵循“Tamas”:)

If you are trying to use this jpeg file in the messageBody of the mailComposer.. then i must clear you buddy...

You cannot use the local images inside the mailbody of mailComposer, the image shud be available on the server and used in the mailbody by passing url of the same..

If you're trying something else...i would say follow "Tamas" :)

UIImage Base64编码失败

灯角 2024-11-14 21:11:18

试试这个,它可能对你有用

td do
    user.username {br} user.created_at 
end

try this it may work for you

td do
    user.username {br} user.created_at 
end

如何插入
在马克比(铁路)

灯角 2024-11-14 20:53:19

仅供参考,在这种情况下,发现原因是创建表的 DDL 中混合大小写的列名。

但是,如果您混合使用“旧式”和 ANSI 连接,即使使用大写表名正确完成 DDL,您也可能会收到相同的错误消息。这发生在我身上,谷歌将我发送到这个 stackoverflow 页面,所以我想我应该分享,因为我在这里。

--NO PROBLEM: ANSI syntax
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM PS_PERSON A
INNER JOIN PS_NAME_PWD_VW B ON B.EMPLID = A.EMPLID
INNER JOIN PS_HCR_PERSON_NM_I C ON C.EMPLID = A.EMPLID
WHERE 
    LENGTH(A.EMPLID) = 9
    AND LENGTH(B.LAST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
ORDER BY 1, 2, 3
/

--NO PROBLEM: OLD STYLE/deprecated/traditional oracle proprietary join syntax
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM PS_PERSON A
, PS_NAME_PWD_VW B 
, PS_HCR_PERSON_NM_I C 
WHERE 
    B.EMPLID = A.EMPLID
    and C.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.LAST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
ORDER BY 1, 2, 3
/

上面的两个 SQL 语句是等效的并且不会产生错误。

当您尝试混合使用它们时,您可能会很幸运,或者您可能会收到 Oracle 有 ORA-00904 错误的信息。

--LUCKY: mixed syntax (ANSI joins appear before OLD STYLE)
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM 
    PS_PERSON A
    inner join PS_HCR_PERSON_NM_I C on C.EMPLID = A.EMPLID
    , PS_NAME_PWD_VW B
WHERE 
    B.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.FIRST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
/

--PROBLEM: mixed syntax (OLD STYLE joins appear before ANSI)
--http://sqlfascination.com/2013/08/17/oracle-ansi-vs-old-style-joins/
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM 
    PS_PERSON A
    , PS_NAME_PWD_VW B
    inner join PS_HCR_PERSON_NM_I C on C.EMPLID = A.EMPLID
WHERE 
    B.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.FIRST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
/

而无用的错误消息根本没有真正描述问题:

>[Error] Script lines: 1-12 -------------------------
ORA-00904: "A"."EMPLID": invalid identifier  Script line 6, statement line 6,
column 51 

我可以在以下博客文章中找到对此的一些研究:

中在我的例子中,我试图手动从旧样式连接转换为 ANSI 样式连接,并且一次一个表增量地执行此操作。这似乎是一个坏主意。相反,最好一次转换所有表,或者注释掉原始查询中的表及其 where 条件,以便与您正在编写的新 ANSI 查询进行比较。

FYI, in this case the cause was found to be mixed case column name in the DDL for table creation.

However, if you are mixing "old style" and ANSI joins you could get the same error message even when the DDL was done properly with uppercase table name. This happened to me, and google sent me to this stackoverflow page so I thought I'd share since I was here.

--NO PROBLEM: ANSI syntax
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM PS_PERSON A
INNER JOIN PS_NAME_PWD_VW B ON B.EMPLID = A.EMPLID
INNER JOIN PS_HCR_PERSON_NM_I C ON C.EMPLID = A.EMPLID
WHERE 
    LENGTH(A.EMPLID) = 9
    AND LENGTH(B.LAST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
ORDER BY 1, 2, 3
/

--NO PROBLEM: OLD STYLE/deprecated/traditional oracle proprietary join syntax
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM PS_PERSON A
, PS_NAME_PWD_VW B 
, PS_HCR_PERSON_NM_I C 
WHERE 
    B.EMPLID = A.EMPLID
    and C.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.LAST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
ORDER BY 1, 2, 3
/

The two SQL statements above are equivalent and produce no error.

When you try to mix them you can get lucky, or you can get an Oracle has a ORA-00904 error.

--LUCKY: mixed syntax (ANSI joins appear before OLD STYLE)
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM 
    PS_PERSON A
    inner join PS_HCR_PERSON_NM_I C on C.EMPLID = A.EMPLID
    , PS_NAME_PWD_VW B
WHERE 
    B.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.FIRST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
/

--PROBLEM: mixed syntax (OLD STYLE joins appear before ANSI)
--http://sqlfascination.com/2013/08/17/oracle-ansi-vs-old-style-joins/
SELECT A.EMPLID, B.FIRST_NAME, C.LAST_NAME
FROM 
    PS_PERSON A
    , PS_NAME_PWD_VW B
    inner join PS_HCR_PERSON_NM_I C on C.EMPLID = A.EMPLID
WHERE 
    B.EMPLID = A.EMPLID
    and LENGTH(A.EMPLID) = 9
    AND LENGTH(B.FIRST_NAME) > 5
    AND LENGTH(C.LAST_NAME) > 5
/

And the unhelpful error message that doesn't really describe the problem at all:

>[Error] Script lines: 1-12 -------------------------
ORA-00904: "A"."EMPLID": invalid identifier  Script line 6, statement line 6,
column 51 

I was able to find some research on this in the following blog post:

In my case, I was attempting to manually convert from old style to ANSI style joins, and was doing so incrementally, one table at a time. This appears to have been a bad idea. Instead, it's probably better to convert all tables at once, or comment out a table and its where conditions in the original query in order to compare with the new ANSI query you are writing.

ORA-00904: 无效标识符

灯角 2024-11-14 15:02:04

答案就在这里:

您还可以使用默认文件强制德语。

而不是:

strings-en.xml
字符串-de.xml
字符串-ch.xml
...

仅使用 strings.xml,并将德语字符串放在那里。任何用户都会看到德语。

The answer is in here:

https://web.archive.org/web/20210127121431/http://www.tutorialforandroid.com/2009/01/force-localize-application-on-android.html

You can also use the default files to force german.

Instead of having:

strings-en.xml
strings-de.xml
strings-ch.xml
...

Use strings.xml only, and put german strings there. Any user will see german.

如何将我的应用程序设置为德语区域设置

更多

推荐作者

娇女薄笑

文章 0 评论 0

biaggi

文章 0 评论 0

xiaolangfanhua

文章 0 评论 0

rivulet

文章 0 评论 0

我三岁

文章 0 评论 0

薆情海

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文